diff options
Diffstat (limited to 'lib/AST/RecordLayoutBuilder.cpp')
| -rw-r--r-- | lib/AST/RecordLayoutBuilder.cpp | 9 | 
1 files changed, 4 insertions, 5 deletions
| diff --git a/lib/AST/RecordLayoutBuilder.cpp b/lib/AST/RecordLayoutBuilder.cpp index de0b1d0ed9db..5636a6f0f64a 100644 --- a/lib/AST/RecordLayoutBuilder.cpp +++ b/lib/AST/RecordLayoutBuilder.cpp @@ -1242,12 +1242,11 @@ void RecordLayoutBuilder::Layout(const ObjCInterfaceDecl *D) {    }    InitializeLayout(D); - +  ObjCInterfaceDecl *OI = const_cast<ObjCInterfaceDecl*>(D);    // Layout each ivar sequentially. -  llvm::SmallVector<ObjCIvarDecl*, 16> Ivars; -  Context.ShallowCollectObjCIvars(D, Ivars); -  for (unsigned i = 0, e = Ivars.size(); i != e; ++i) -    LayoutField(Ivars[i]); +  for (ObjCIvarDecl *IVD = OI->all_declared_ivar_begin();  +       IVD; IVD = IVD->getNextIvar()) +    LayoutField(IVD);    // Finally, round the size of the total struct up to the alignment of the    // struct itself. | 
