[PCH] In ASTReader::FinishedDeserializing fully load the interesting decls,

including deserializing their bodies, so that any other declarations that
get referenced in the body will be fully deserialized by the time we pass them to the consumer.

Could not reduce to a test case unfortunately. rdar://10587158.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146817 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Argyrios Kyrtzidis 2011-12-17 04:13:28 +00:00
Родитель 672b3232f7
Коммит 71168330e2
1 изменённых файлов: 9 добавлений и 0 удалений

Просмотреть файл

@ -6028,6 +6028,15 @@ void ASTReader::FinishedDeserializing() {
assert(NumCurrentElementsDeserializing &&
"FinishedDeserializing not paired with StartedDeserializing");
if (NumCurrentElementsDeserializing == 1) {
// Fully load the interesting decls, including deserializing their bodies,
// so that any other declarations that get referenced in the body will be
// fully deserialized by the time we pass them to the consumer.
for (std::deque<Decl *>::iterator
I = InterestingDecls.begin(),
E = InterestingDecls.end(); I != E; ++I)
(*I)->getBody();
do {
// If any identifiers with corresponding top-level declarations have
// been loaded, load those declarations now.