1*67e74705SXin Li // no PCH 2*67e74705SXin Li // RUN: %clang_cc1 -include %s -include %s -fsyntax-only %s 3*67e74705SXin Li // with PCH 4*67e74705SXin Li // RUN: %clang_cc1 -chain-include %s -chain-include %s -fsyntax-only %s 5*67e74705SXin Li // with PCH, with modules enabled 6*67e74705SXin Li // RUN: %clang_cc1 -chain-include %s -chain-include %s -fsyntax-only -fmodules %s 7*67e74705SXin Li #if !defined(PASS1) 8*67e74705SXin Li #define PASS1 9*67e74705SXin Li 10*67e74705SXin Li namespace ns {} 11*67e74705SXin Li namespace os {} 12*67e74705SXin Li 13*67e74705SXin Li #elif !defined(PASS2) 14*67e74705SXin Li #define PASS2 15*67e74705SXin Li 16*67e74705SXin Li namespace ns { 17*67e74705SXin Li namespace { 18*67e74705SXin Li extern int x; 19*67e74705SXin Li } 20*67e74705SXin Li } 21*67e74705SXin Li 22*67e74705SXin Li namespace { 23*67e74705SXin Li extern int y; 24*67e74705SXin Li } 25*67e74705SXin Li namespace { 26*67e74705SXin Li } 27*67e74705SXin Li 28*67e74705SXin Li namespace os { 29*67e74705SXin Li extern "C" { 30*67e74705SXin Li namespace { 31*67e74705SXin Li extern int z; 32*67e74705SXin Li } 33*67e74705SXin Li } 34*67e74705SXin Li } 35*67e74705SXin Li 36*67e74705SXin Li #else 37*67e74705SXin Li 38*67e74705SXin Li namespace ns { 39*67e74705SXin Li namespace { 40*67e74705SXin Li int x; 41*67e74705SXin Li } test()42*67e74705SXin Li void test() { 43*67e74705SXin Li (void)x; 44*67e74705SXin Li } 45*67e74705SXin Li } 46*67e74705SXin Li 47*67e74705SXin Li namespace { 48*67e74705SXin Li int y; 49*67e74705SXin Li } test()50*67e74705SXin Livoid test() { 51*67e74705SXin Li (void)y; 52*67e74705SXin Li } 53*67e74705SXin Li 54*67e74705SXin Li namespace os { 55*67e74705SXin Li namespace { 56*67e74705SXin Li int z; 57*67e74705SXin Li } test()58*67e74705SXin Li void test() { 59*67e74705SXin Li (void)z; 60*67e74705SXin Li } 61*67e74705SXin Li } 62*67e74705SXin Li 63*67e74705SXin Li #endif 64