aboutsummaryrefslogtreecommitdiff
path: root/lib/Serialization/ASTReader.cpp
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2011-12-20 22:06:13 +0000
committerDouglas Gregor <dgregor@apple.com>2011-12-20 22:06:13 +0000
commit1d4c1137c314cfb9ced32006cacdb80deffb66d4 (patch)
tree3be1067509e864524673fc454f50497b61c39e1d /lib/Serialization/ASTReader.cpp
parent6ae325737c2ef7ce60ac6650a96bd489ef6e7ebe (diff)
When we make a previously-deserialized module definition visible,
notify the AST deserialization listener so that the AST writer knows that it can write the macro definition. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146994 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Serialization/ASTReader.cpp')
-rw-r--r--lib/Serialization/ASTReader.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/lib/Serialization/ASTReader.cpp b/lib/Serialization/ASTReader.cpp
index 5971011fce..cb2759bd03 100644
--- a/lib/Serialization/ASTReader.cpp
+++ b/lib/Serialization/ASTReader.cpp
@@ -2487,8 +2487,14 @@ void ASTReader::makeNamesVisible(const HiddenNames &Names) {
for (unsigned I = 0, N = Names.size(); I != N; ++I) {
if (Decl *D = Names[I].dyn_cast<Decl *>())
D->ModulePrivate = false;
- else
- Names[I].get<IdentifierInfo *>()->setHasMacroDefinition(true);
+ else {
+ IdentifierInfo *II = Names[I].get<IdentifierInfo *>();
+ if (!II->hasMacroDefinition()) {
+ II->setHasMacroDefinition(true);
+ if (DeserializationListener)
+ DeserializationListener->MacroVisible(II);
+ }
+ }
}
}