diff options
author | Aaron Ballman <aaron@aaronballman.com> | 2014-03-10 17:08:28 +0000 |
---|---|---|
committer | Aaron Ballman <aaron@aaronballman.com> | 2014-03-10 17:08:28 +0000 |
commit | be22bcb180714600926d5247ad9439f75cfc49db (patch) | |
tree | 4e134eb4edee82e21c48c0ed730c301aabace541 /clang/lib/Sema/SemaDecl.cpp | |
parent | a7a94d10eaf571470868c65d232bf9c7c8621285 (diff) | |
download | bcm5719-llvm-be22bcb180714600926d5247ad9439f75cfc49db.tar.gz bcm5719-llvm-be22bcb180714600926d5247ad9439f75cfc49db.zip |
[C++11] Replacing DeclBase iterators specific_attr_begin() and specific_attr_end() with iterator_range specific_attrs(). Updating all of the usages of the iterators with range-based for loops.
llvm-svn: 203474
Diffstat (limited to 'clang/lib/Sema/SemaDecl.cpp')
-rw-r--r-- | clang/lib/Sema/SemaDecl.cpp | 42 |
1 files changed, 15 insertions, 27 deletions
diff --git a/clang/lib/Sema/SemaDecl.cpp b/clang/lib/Sema/SemaDecl.cpp index 820f908e351..8e796e6be93 100644 --- a/clang/lib/Sema/SemaDecl.cpp +++ b/clang/lib/Sema/SemaDecl.cpp @@ -1825,9 +1825,7 @@ static bool mergeAlignedAttrs(Sema &S, NamedDecl *New, Decl *Old) { AlignedAttr *OldAlignasAttr = 0; AlignedAttr *OldStrictestAlignAttr = 0; unsigned OldAlign = 0; - for (specific_attr_iterator<AlignedAttr> - I = Old->specific_attr_begin<AlignedAttr>(), - E = Old->specific_attr_end<AlignedAttr>(); I != E; ++I) { + for (auto *I : Old->specific_attrs<AlignedAttr>()) { // FIXME: We have no way of representing inherited dependent alignments // in a case like: // template<int A, int B> struct alignas(A) X; @@ -1838,26 +1836,24 @@ static bool mergeAlignedAttrs(Sema &S, NamedDecl *New, Decl *Old) { return false; if (I->isAlignas()) - OldAlignasAttr = *I; + OldAlignasAttr = I; unsigned Align = I->getAlignment(S.Context); if (Align > OldAlign) { OldAlign = Align; - OldStrictestAlignAttr = *I; + OldStrictestAlignAttr = I; } } // Look for alignas attributes on New. AlignedAttr *NewAlignasAttr = 0; unsigned NewAlign = 0; - for (specific_attr_iterator<AlignedAttr> - I = New->specific_attr_begin<AlignedAttr>(), - E = New->specific_attr_end<AlignedAttr>(); I != E; ++I) { + for (auto *I : New->specific_attrs<AlignedAttr>()) { if (I->isAlignmentDependent()) return false; if (I->isAlignas()) - NewAlignasAttr = *I; + NewAlignasAttr = I; unsigned Align = I->getAlignment(S.Context); if (Align > NewAlign) @@ -2103,15 +2099,12 @@ void Sema::mergeDeclAttributes(NamedDecl *New, Decl *Old, // we process them. if (!foundAny) New->setAttrs(AttrVec()); - for (specific_attr_iterator<InheritableAttr> - i = Old->specific_attr_begin<InheritableAttr>(), - e = Old->specific_attr_end<InheritableAttr>(); - i != e; ++i) { + for (auto *I : Old->specific_attrs<InheritableAttr>()) { bool Override = false; // Ignore deprecated/unavailable/availability attributes if requested. - if (isa<DeprecatedAttr>(*i) || - isa<UnavailableAttr>(*i) || - isa<AvailabilityAttr>(*i)) { + if (isa<DeprecatedAttr>(I) || + isa<UnavailableAttr>(I) || + isa<AvailabilityAttr>(I)) { switch (AMK) { case AMK_None: continue; @@ -2126,10 +2119,10 @@ void Sema::mergeDeclAttributes(NamedDecl *New, Decl *Old, } // Already handled. - if (isa<UsedAttr>(*i)) + if (isa<UsedAttr>(I)) continue; - if (mergeDeclAttribute(*this, New, *i, Override)) + if (mergeDeclAttribute(*this, New, I, Override)) foundAny = true; } @@ -2171,12 +2164,10 @@ static void mergeParamDeclAttributes(ParmVarDecl *newDecl, // done before we process them. if (!foundAny) newDecl->setAttrs(AttrVec()); - for (specific_attr_iterator<InheritableParamAttr> - i = oldDecl->specific_attr_begin<InheritableParamAttr>(), - e = oldDecl->specific_attr_end<InheritableParamAttr>(); i != e; ++i) { - if (!DeclHasAttr(newDecl, *i)) { + for (const auto *I : oldDecl->specific_attrs<InheritableParamAttr>()) { + if (!DeclHasAttr(newDecl, I)) { InheritableAttr *newAttr = - cast<InheritableParamAttr>((*i)->clone(S.Context)); + cast<InheritableParamAttr>(I->clone(S.Context)); newAttr->setInherited(true); newDecl->addAttr(newAttr); foundAny = true; @@ -8942,10 +8933,7 @@ Sema::FinalizeDeclaration(Decl *ThisDecl) { !VD->getType()->isIntegralOrEnumerationType()) return; - for (specific_attr_iterator<TypeTagForDatatypeAttr> - I = ThisDecl->specific_attr_begin<TypeTagForDatatypeAttr>(), - E = ThisDecl->specific_attr_end<TypeTagForDatatypeAttr>(); - I != E; ++I) { + for (const auto *I : ThisDecl->specific_attrs<TypeTagForDatatypeAttr>()) { const Expr *MagicValueExpr = VD->getInit(); if (!MagicValueExpr) { continue; |