Fix iterator invalidation issues that are breaking my modules buildbot's bootstrap.

llvm-svn: 214547
This commit is contained in:
Richard Smith
2014-08-01 19:59:14 +00:00
parent 1f52b3da0a
commit cf08ff50dd
2 changed files with 16 additions and 6 deletions

View File

@@ -94,10 +94,13 @@ namespace {
for (DeclGroupRef::iterator I = DG.begin(), E = DG.end(); I != E; ++I)
Builder->EmitTopLevelDecl(*I);
// Emit any deferred inline method definitions.
for (CXXMethodDecl *MD : DeferredInlineMethodDefinitions)
// Emit any deferred inline method definitions. Note that more deferred
// methods may be added during this loop.
while (!DeferredInlineMethodDefinitions.empty()) {
CXXMethodDecl *MD = DeferredInlineMethodDefinitions.back();
DeferredInlineMethodDefinitions.pop_back();
Builder->EmitTopLevelDecl(MD);
DeferredInlineMethodDefinitions.clear();
}
return true;
}