aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2010-10-05 20:41:58 +0000
committerDouglas Gregor <dgregor@apple.com>2010-10-05 20:41:58 +0000
commit0a0c3e72ce42f84f361c285e6963d44213ab6bea (patch)
tree21e144777dac13e9a58e78f4f2807868e8b553b4
parent97475834207bf5abb5b58534f783c9b71d4b9df1 (diff)
Serialize the "inline" bit for namespaces. Fixes <rdar://problem/8515069>.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@115667 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/Serialization/ASTReaderDecl.cpp1
-rw-r--r--lib/Serialization/ASTWriterDecl.cpp1
-rw-r--r--test/PCH/Inputs/namespaces.h4
-rw-r--r--test/PCH/namespaces.cpp3
4 files changed, 9 insertions, 0 deletions
diff --git a/lib/Serialization/ASTReaderDecl.cpp b/lib/Serialization/ASTReaderDecl.cpp
index a68f562a3f..e42a5b4923 100644
--- a/lib/Serialization/ASTReaderDecl.cpp
+++ b/lib/Serialization/ASTReaderDecl.cpp
@@ -658,6 +658,7 @@ void ASTDeclReader::VisitLinkageSpecDecl(LinkageSpecDecl *D) {
void ASTDeclReader::VisitNamespaceDecl(NamespaceDecl *D) {
VisitNamedDecl(D);
+ D->IsInline = Record[Idx++];
D->setLBracLoc(ReadSourceLocation(Record, Idx));
D->setRBracLoc(ReadSourceLocation(Record, Idx));
D->setNextNamespace(
diff --git a/lib/Serialization/ASTWriterDecl.cpp b/lib/Serialization/ASTWriterDecl.cpp
index f8d584bb51..07520d802b 100644
--- a/lib/Serialization/ASTWriterDecl.cpp
+++ b/lib/Serialization/ASTWriterDecl.cpp
@@ -610,6 +610,7 @@ void ASTDeclWriter::VisitLinkageSpecDecl(LinkageSpecDecl *D) {
void ASTDeclWriter::VisitNamespaceDecl(NamespaceDecl *D) {
VisitNamedDecl(D);
+ Record.push_back(D->isInline());
Writer.AddSourceLocation(D->getLBracLoc(), Record);
Writer.AddSourceLocation(D->getRBracLoc(), Record);
Writer.AddDeclRef(D->getNextNamespace(), Record);
diff --git a/test/PCH/Inputs/namespaces.h b/test/PCH/Inputs/namespaces.h
index 553aadd1f9..bd2c3ee982 100644
--- a/test/PCH/Inputs/namespaces.h
+++ b/test/PCH/Inputs/namespaces.h
@@ -38,3 +38,7 @@ using namespace N2::Inner;
extern "C" {
void ext();
}
+
+inline namespace N4 {
+ struct MemberOfN4;
+}
diff --git a/test/PCH/namespaces.cpp b/test/PCH/namespaces.cpp
index b8a22e57a0..6dd447318a 100644
--- a/test/PCH/namespaces.cpp
+++ b/test/PCH/namespaces.cpp
@@ -40,3 +40,6 @@ void (*pused)() = used_func;
using N1::used_cls;
used_cls s1;
used_cls* ps1 = &s1;
+
+inline namespace N4 { }
+struct MemberOfN4 *mn4;