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