diff options
author | Benjamin Kramer <benny.kra@googlemail.com> | 2017-12-17 23:52:45 +0000 |
---|---|---|
committer | Benjamin Kramer <benny.kra@googlemail.com> | 2017-12-17 23:52:45 +0000 |
commit | acfa339e15855e90b748fdb1c5081c8a6a49cdbb (patch) | |
tree | 06eb95bc52bb23a0d8b310099556e5c293e70a2b /clang/lib/AST/VTableBuilder.cpp | |
parent | 3603de2fa22288e5d9237277ead132ca07e3c0a6 (diff) | |
download | bcm5719-llvm-acfa339e15855e90b748fdb1c5081c8a6a49cdbb.tar.gz bcm5719-llvm-acfa339e15855e90b748fdb1c5081c8a6a49cdbb.zip |
Refactor overridden methods iteration to avoid double lookups.
Convert most uses to range-for loops. No functionality change intended.
llvm-svn: 320954
Diffstat (limited to 'clang/lib/AST/VTableBuilder.cpp')
-rw-r--r-- | clang/lib/AST/VTableBuilder.cpp | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/clang/lib/AST/VTableBuilder.cpp b/clang/lib/AST/VTableBuilder.cpp index ae8f6309fc6..347c516ef6a 100644 --- a/clang/lib/AST/VTableBuilder.cpp +++ b/clang/lib/AST/VTableBuilder.cpp @@ -1079,9 +1079,7 @@ static void visitAllOverriddenMethods(const CXXMethodDecl *MD, VisitorTy &Visitor) { assert(MD->isVirtual() && "Method is not virtual!"); - for (CXXMethodDecl::method_iterator I = MD->begin_overridden_methods(), - E = MD->end_overridden_methods(); I != E; ++I) { - const CXXMethodDecl *OverriddenMD = *I; + for (const CXXMethodDecl *OverriddenMD : MD->overridden_methods()) { if (!Visitor(OverriddenMD)) continue; visitAllOverriddenMethods(OverriddenMD, Visitor); @@ -1329,11 +1327,8 @@ static bool OverridesIndirectMethodInBases( ItaniumVTableBuilder::PrimaryBasesSetVectorTy &Bases) { if (Bases.count(MD->getParent())) return true; - - for (CXXMethodDecl::method_iterator I = MD->begin_overridden_methods(), - E = MD->end_overridden_methods(); I != E; ++I) { - const CXXMethodDecl *OverriddenMD = *I; - + + for (const CXXMethodDecl *OverriddenMD : MD->overridden_methods()) { // Check "indirect overriders". if (OverridesIndirectMethodInBases(OverriddenMD, Bases)) return true; |