summaryrefslogtreecommitdiffstats
path: root/clang/lib/Serialization/ASTReader.cpp
diff options
context:
space:
mode:
authorArgyrios Kyrtzidis <akyrtzi@gmail.com>2011-11-14 07:07:59 +0000
committerArgyrios Kyrtzidis <akyrtzi@gmail.com>2011-11-14 07:07:59 +0000
commit7d268c3b8ba5d1a23f48bcd9e8d88b051a7fcbdd (patch)
tree91cb8983f9d450b1a0a7069e9b7c97c5d4ecee00 /clang/lib/Serialization/ASTReader.cpp
parent2432d81ee4d499fd69757340acbb1d9a27ccc10c (diff)
downloadbcm5719-llvm-7d268c3b8ba5d1a23f48bcd9e8d88b051a7fcbdd.tar.gz
bcm5719-llvm-7d268c3b8ba5d1a23f48bcd9e8d88b051a7fcbdd.zip
[PCH] Load the chained objc categories only after recursive loading is finished
otherwise we may crash. llvm-svn: 144524
Diffstat (limited to 'clang/lib/Serialization/ASTReader.cpp')
-rw-r--r--clang/lib/Serialization/ASTReader.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/clang/lib/Serialization/ASTReader.cpp b/clang/lib/Serialization/ASTReader.cpp
index 80b582e246d..6192fb77517 100644
--- a/clang/lib/Serialization/ASTReader.cpp
+++ b/clang/lib/Serialization/ASTReader.cpp
@@ -5543,6 +5543,14 @@ void ASTReader::FinishedDeserializing() {
PendingPreviousDecls.pop_front();
}
+ for (std::vector<std::pair<ObjCInterfaceDecl *,
+ serialization::DeclID> >::iterator
+ I = PendingChainedObjCCategories.begin(),
+ E = PendingChainedObjCCategories.end(); I != E; ++I) {
+ loadObjCChainedCategories(I->second, I->first);
+ }
+ PendingChainedObjCCategories.clear();
+
// We are not in recursive loading, so it's safe to pass the "interesting"
// decls to the consumer.
if (Consumer)
OpenPOWER on IntegriCloud