reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
2775 New->addAttr(NewAttr); 2778 if (!Old->hasAttrs() && !New->hasAttrs()) 2785 const auto *NewConstInit = New->getAttr<ConstInitAttr>(); 2788 auto *NewVD = cast<VarDecl>(New); 2817 checkNewAttributesAfterDef(*this, New, Old); 2819 if (AsmLabelAttr *NewA = New->getAttr<AsmLabelAttr>()) { 2823 Diag(New->getLocation(), diag::err_different_asm_label); 2829 Diag(New->getLocation(), diag::err_late_asm_label_name) 2830 << isa<FunctionDecl>(Old) << New->getAttr<AsmLabelAttr>()->getRange(); 2835 if (const auto *NewAbiTagAttr = New->getAttr<AbiTagAttr>()) { 2853 if (New->hasAttr<SectionAttr>() && !Old->hasAttr<SectionAttr>()) { 2854 if (auto *VD = dyn_cast<VarDecl>(New)) { 2856 Diag(New->getLocation(), diag::warn_attribute_section_on_redeclaration); 2863 const auto *NewCSA = New->getAttr<CodeSegAttr>(); 2865 !NewCSA->isImplicit() && isa<CXXMethodDecl>(New)) { 2866 Diag(New->getLocation(), diag::warn_mismatched_section) 2874 bool foundAny = New->hasAttrs(); 2878 if (!foundAny) New->setAttrs(AttrVec()); 2902 if (mergeDeclAttribute(*this, New, I, LocalAMK)) 2906 if (mergeAlignedAttrs(*this, New, Old)) 2909 if (!foundAny) New->dropAttrs();