17c0837f29680f387fc4969b48a3643fe00b9b541Sebastian Redl// no PCH
27c0837f29680f387fc4969b48a3643fe00b9b541Sebastian Redl// RUN: %clang_cc1 -include %s -include %s -fsyntax-only %s
37c0837f29680f387fc4969b48a3643fe00b9b541Sebastian Redl// with PCH
47c0837f29680f387fc4969b48a3643fe00b9b541Sebastian Redl// RUN: %clang_cc1 -chain-include %s -chain-include %s -fsyntax-only %s
5d613ac9c57936d219d9eecba1d061a45ff7a3ae8Richard Smith// with PCH, with modules enabled
6d613ac9c57936d219d9eecba1d061a45ff7a3ae8Richard Smith// RUN: %clang_cc1 -chain-include %s -chain-include %s -fsyntax-only -fmodules %s
77c0837f29680f387fc4969b48a3643fe00b9b541Sebastian Redl#if !defined(PASS1)
87c0837f29680f387fc4969b48a3643fe00b9b541Sebastian Redl#define PASS1
97c0837f29680f387fc4969b48a3643fe00b9b541Sebastian Redl
107c0837f29680f387fc4969b48a3643fe00b9b541Sebastian Redlnamespace ns {}
1174b485a2b36c0ba33a85ba9cb6e36e0e3a1fada1Sebastian Redlnamespace os {}
127c0837f29680f387fc4969b48a3643fe00b9b541Sebastian Redl
137c0837f29680f387fc4969b48a3643fe00b9b541Sebastian Redl#elif !defined(PASS2)
147c0837f29680f387fc4969b48a3643fe00b9b541Sebastian Redl#define PASS2
157c0837f29680f387fc4969b48a3643fe00b9b541Sebastian Redl
167c0837f29680f387fc4969b48a3643fe00b9b541Sebastian Redlnamespace ns {
177c0837f29680f387fc4969b48a3643fe00b9b541Sebastian Redl  namespace {
187c0837f29680f387fc4969b48a3643fe00b9b541Sebastian Redl    extern int x;
197c0837f29680f387fc4969b48a3643fe00b9b541Sebastian Redl  }
207c0837f29680f387fc4969b48a3643fe00b9b541Sebastian Redl}
217c0837f29680f387fc4969b48a3643fe00b9b541Sebastian Redl
227c0837f29680f387fc4969b48a3643fe00b9b541Sebastian Redlnamespace {
237c0837f29680f387fc4969b48a3643fe00b9b541Sebastian Redl  extern int y;
247c0837f29680f387fc4969b48a3643fe00b9b541Sebastian Redl}
2574b485a2b36c0ba33a85ba9cb6e36e0e3a1fada1Sebastian Redlnamespace {
2674b485a2b36c0ba33a85ba9cb6e36e0e3a1fada1Sebastian Redl}
2774b485a2b36c0ba33a85ba9cb6e36e0e3a1fada1Sebastian Redl
2874b485a2b36c0ba33a85ba9cb6e36e0e3a1fada1Sebastian Redlnamespace os {
2974b485a2b36c0ba33a85ba9cb6e36e0e3a1fada1Sebastian Redl  extern "C" {
3074b485a2b36c0ba33a85ba9cb6e36e0e3a1fada1Sebastian Redl    namespace {
3174b485a2b36c0ba33a85ba9cb6e36e0e3a1fada1Sebastian Redl      extern int z;
3274b485a2b36c0ba33a85ba9cb6e36e0e3a1fada1Sebastian Redl    }
3374b485a2b36c0ba33a85ba9cb6e36e0e3a1fada1Sebastian Redl  }
3474b485a2b36c0ba33a85ba9cb6e36e0e3a1fada1Sebastian Redl}
357c0837f29680f387fc4969b48a3643fe00b9b541Sebastian Redl
367c0837f29680f387fc4969b48a3643fe00b9b541Sebastian Redl#else
377c0837f29680f387fc4969b48a3643fe00b9b541Sebastian Redl
387c0837f29680f387fc4969b48a3643fe00b9b541Sebastian Redlnamespace ns {
397c0837f29680f387fc4969b48a3643fe00b9b541Sebastian Redl  namespace {
407c0837f29680f387fc4969b48a3643fe00b9b541Sebastian Redl    int x;
417c0837f29680f387fc4969b48a3643fe00b9b541Sebastian Redl  }
427c0837f29680f387fc4969b48a3643fe00b9b541Sebastian Redl  void test() {
437c0837f29680f387fc4969b48a3643fe00b9b541Sebastian Redl    (void)x;
447c0837f29680f387fc4969b48a3643fe00b9b541Sebastian Redl  }
457c0837f29680f387fc4969b48a3643fe00b9b541Sebastian Redl}
467c0837f29680f387fc4969b48a3643fe00b9b541Sebastian Redl
477c0837f29680f387fc4969b48a3643fe00b9b541Sebastian Redlnamespace {
487c0837f29680f387fc4969b48a3643fe00b9b541Sebastian Redl  int y;
497c0837f29680f387fc4969b48a3643fe00b9b541Sebastian Redl}
507c0837f29680f387fc4969b48a3643fe00b9b541Sebastian Redlvoid test() {
517c0837f29680f387fc4969b48a3643fe00b9b541Sebastian Redl  (void)y;
527c0837f29680f387fc4969b48a3643fe00b9b541Sebastian Redl}
537c0837f29680f387fc4969b48a3643fe00b9b541Sebastian Redl
5474b485a2b36c0ba33a85ba9cb6e36e0e3a1fada1Sebastian Redlnamespace os {
5574b485a2b36c0ba33a85ba9cb6e36e0e3a1fada1Sebastian Redl  namespace {
5674b485a2b36c0ba33a85ba9cb6e36e0e3a1fada1Sebastian Redl    int z;
5774b485a2b36c0ba33a85ba9cb6e36e0e3a1fada1Sebastian Redl  }
5874b485a2b36c0ba33a85ba9cb6e36e0e3a1fada1Sebastian Redl  void test() {
5974b485a2b36c0ba33a85ba9cb6e36e0e3a1fada1Sebastian Redl    (void)z;
6074b485a2b36c0ba33a85ba9cb6e36e0e3a1fada1Sebastian Redl  }
6174b485a2b36c0ba33a85ba9cb6e36e0e3a1fada1Sebastian Redl}
6274b485a2b36c0ba33a85ba9cb6e36e0e3a1fada1Sebastian Redl
637c0837f29680f387fc4969b48a3643fe00b9b541Sebastian Redl#endif
64