reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
6226 if (OldDecl->isInvalidDecl() || NewDecl->isInvalidDecl()) 6230 if (TemplateDecl *OldTD = dyn_cast<TemplateDecl>(OldDecl)) { 6231 OldDecl = OldTD->getTemplatedDecl(); 6241 if (!OldDecl || !NewDecl) 6244 const DLLImportAttr *OldImportAttr = OldDecl->getAttr<DLLImportAttr>(); 6245 const DLLExportAttr *OldExportAttr = OldDecl->getAttr<DLLExportAttr>(); 6260 if (AddsAttr && !IsSpecialization && !OldDecl->isImplicit()) { 6263 if (!OldDecl->isCXXClassMember()) { 6264 auto *VD = dyn_cast<VarDecl>(OldDecl); 6267 auto *FD = dyn_cast<FunctionDecl>(OldDecl); 6275 if (OldDecl->isUsed()) 6276 if (!isa<FunctionDecl>(OldDecl) || !NewImportAttr) 6284 S.Diag(OldDecl->getLocation(), diag::note_previous_declaration); 6317 S.Diag(OldDecl->getLocation(), diag::note_previous_declaration); 6325 S.Diag(OldDecl->getLocation(), diag::note_previous_declaration); 6327 OldDecl->dropAttr<DLLImportAttr>(); 6333 OldDecl->dropAttr<DLLImportAttr>();