1// no PCH
2// RUN: %clang_cc1 -include %s -include %s -fsyntax-only %s
3// full PCH
4// RUN: %clang_cc1 -chain-include %s -chain-include %s -fsyntax-only %s
5#if !defined(PASS1)
6#define PASS1
7
8namespace foo {} // no external storage
9
10#elif !defined(PASS2)
11#define PASS2
12
13namespace foo {
14  void bar();
15}
16
17#else
18// PASS3
19
20void test() {
21  foo::bar(); // no-error
22}
23
24#endif
25