Fix adding an anonymous namespace in a chained PCH to a namespace from a previous PCH.
Fix anonymous namespaces in PCH.

llvm-svn: 130104
diff --git a/clang/test/PCH/chain-late-anonymous-namespace.cpp b/clang/test/PCH/chain-late-anonymous-namespace.cpp
new file mode 100644
index 0000000..5369947
--- /dev/null
+++ b/clang/test/PCH/chain-late-anonymous-namespace.cpp
@@ -0,0 +1,41 @@
+// no PCH
+// RUN: %clang_cc1 -include %s -include %s -fsyntax-only %s
+// with PCH
+// RUN: %clang_cc1 -chain-include %s -chain-include %s -fsyntax-only %s
+#if !defined(PASS1)
+#define PASS1
+
+namespace ns {}
+
+#elif !defined(PASS2)
+#define PASS2
+
+namespace ns {
+  namespace {
+    extern int x;
+  }
+}
+
+namespace {
+  extern int y;
+}
+
+#else
+
+namespace ns {
+  namespace {
+    int x;
+  }
+  void test() {
+    (void)x;
+  }
+}
+
+namespace {
+  int y;
+}
+void test() {
+  (void)y;
+}
+
+#endif