Keep track in chained PCH of implicit members that were added after the definition was completed.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117240 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/AST/DeclCXX.cpp b/lib/AST/DeclCXX.cpp
index f371514..0e70053 100644
--- a/lib/AST/DeclCXX.cpp
+++ b/lib/AST/DeclCXX.cpp
@@ -364,12 +364,11 @@
}
if (D->isImplicit()) {
- // Notify the serializer that an implicit member changed the definition.
- // A chained PCH will write the whole definition again.
- // FIXME: Make a notification about the specific change (through a listener
- // interface) so the changes that the serializer records are more
- // fine grained.
- data().Definition->setChangedSinceDeserialization(true);
+ // Notify that an implicit member was added after the definition
+ // was completed.
+ if (!isBeingDefined())
+ if (ASTMutationListener *L = getASTMutationListener())
+ L->AddedCXXImplicitMember(data().Definition, D);
if (CXXConstructorDecl *Constructor = dyn_cast<CXXConstructorDecl>(D)) {
// If this is the implicit default constructor, note that we have now