]> granicus.if.org Git - clang/commitdiff
[C++11] Replacing ObjCImplementationDecl iterators init_begin() and init_end() with...
authorAaron Ballman <aaron@aaronballman.com>
Thu, 13 Mar 2014 17:35:02 +0000 (17:35 +0000)
committerAaron Ballman <aaron@aaronballman.com>
Thu, 13 Mar 2014 17:35:02 +0000 (17:35 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@203820 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang/AST/DeclObjC.h
lib/CodeGen/CGObjC.cpp

index 7e7e421d9a4d4cbae16cd6c8790590408a7324b1..41d86ffff542a68f2fed2d979a8764b1ed409816 100644 (file)
@@ -1934,6 +1934,14 @@ public:
   /// init_const_iterator - Iterates through the ivar initializer list.
   typedef CXXCtorInitializer * const * init_const_iterator;
 
+  typedef llvm::iterator_range<init_iterator> init_range;
+  typedef llvm::iterator_range<init_const_iterator> init_const_range;
+
+  init_range inits() { return init_range(init_begin(), init_end()); }
+  init_const_range inits() const {
+    return init_const_range(init_begin(), init_end());
+  }
+
   /// init_begin() - Retrieve an iterator to the first initializer.
   init_iterator       init_begin()       { return IvarInitializers; }
   /// begin() - Retrieve an iterator to the first initializer.
index 5cc2ff3173fd25f11de76a2a71390eebfef96173..01ad1f22a2bcae1e4df08522d1c95a01f3f61d72 100644 (file)
@@ -1362,11 +1362,9 @@ void CodeGenFunction::GenerateObjCCtorDtorMethod(ObjCImplementationDecl *IMP,
     // Suppress the final autorelease in ARC.
     AutoreleaseResult = false;
 
-    for (ObjCImplementationDecl::init_const_iterator B = IMP->init_begin(),
-           E = IMP->init_end(); B != E; ++B) {
-      CXXCtorInitializer *IvarInit = (*B);
+    for (const auto *IvarInit : IMP->inits()) {
       FieldDecl *Field = IvarInit->getAnyMember();
-      ObjCIvarDecl  *Ivar = cast<ObjCIvarDecl>(Field);
+      ObjCIvarDecl *Ivar = cast<ObjCIvarDecl>(Field);
       LValue LV = EmitLValueForIvar(TypeOfSelfObject(), 
                                     LoadObjCSelf(), Ivar, 0);
       EmitAggExpr(IvarInit->getInit(),