From 2c38164737f70e7cb55e2935563cfb70f89ffd5f Mon Sep 17 00:00:00 2001 From: Richard Smith Date: Wed, 27 Aug 2014 23:11:59 +0000 Subject: [modules] Add an assert that we properly manage the IsCompleteDefinition flag on CXXRecordDecls when merging definitions, and make it pass by not trying to save and restore this flag across AST serialization/deserialization. For CXXRecordDecls, we have a separate mechanism to manage this. llvm-svn: 216633 --- clang/lib/Serialization/ASTReader.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'clang/lib/Serialization/ASTReader.cpp') diff --git a/clang/lib/Serialization/ASTReader.cpp b/clang/lib/Serialization/ASTReader.cpp index 68faeed6a20..5cd57d70d09 100644 --- a/clang/lib/Serialization/ASTReader.cpp +++ b/clang/lib/Serialization/ASTReader.cpp @@ -8216,8 +8216,11 @@ void ASTReader::finishPendingActions() { } if (auto RD = dyn_cast(D)) { - for (auto R : RD->redecls()) + for (auto R : RD->redecls()) { + assert((R == D) == R->isThisDeclarationADefinition() && + "declaration thinks it's the definition but it isn't"); cast(R)->DefinitionData = RD->DefinitionData; + } } continue; -- cgit v1.2.3