forked from OSchip/llvm-project
[C++11] Replacing ObjCImplementationDecl iterators init_begin() and init_end() with iterator_range inits(). Updating all of the usages of the iterators with range-based for loops.
llvm-svn: 203820
This commit is contained in:
parent
0ad78303de
commit
9bc5f36099
|
@ -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.
|
||||
|
|
|
@ -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(),
|
||||
|
|
Loading…
Reference in New Issue