1*2810e9deSArgyrios Kyrtzidis 
2*2810e9deSArgyrios Kyrtzidis // <rdar://12889089>
3*2810e9deSArgyrios Kyrtzidis 
4*2810e9deSArgyrios Kyrtzidis #ifndef HEADER1
5*2810e9deSArgyrios Kyrtzidis #define HEADER1
6*2810e9deSArgyrios Kyrtzidis 
7*2810e9deSArgyrios Kyrtzidis // CHECK-TU: FunctionDecl:{ResultType void}{TypedText foo}
8*2810e9deSArgyrios Kyrtzidis void foo();
9*2810e9deSArgyrios Kyrtzidis 
10*2810e9deSArgyrios Kyrtzidis namespace Cake {
11*2810e9deSArgyrios Kyrtzidis // CHECK-NAMESPACE: FunctionDecl:{ResultType void}{TypedText lie}
12*2810e9deSArgyrios Kyrtzidis void lie();
13*2810e9deSArgyrios Kyrtzidis }
14*2810e9deSArgyrios Kyrtzidis 
15*2810e9deSArgyrios Kyrtzidis #elif !defined(HEADER2)
16*2810e9deSArgyrios Kyrtzidis #define HEADER2
17*2810e9deSArgyrios Kyrtzidis 
18*2810e9deSArgyrios Kyrtzidis namespace Cake {
19*2810e9deSArgyrios Kyrtzidis extern int Baz;
20*2810e9deSArgyrios Kyrtzidis }
21*2810e9deSArgyrios Kyrtzidis 
22*2810e9deSArgyrios Kyrtzidis #else
23*2810e9deSArgyrios Kyrtzidis 
func()24*2810e9deSArgyrios Kyrtzidis void func() {
25*2810e9deSArgyrios Kyrtzidis Cake::
26*2810e9deSArgyrios Kyrtzidis }
27*2810e9deSArgyrios Kyrtzidis 
28*2810e9deSArgyrios Kyrtzidis #endif
29*2810e9deSArgyrios Kyrtzidis 
30*2810e9deSArgyrios Kyrtzidis // RUN: c-index-test -write-pch %t1.h.pch %s
31*2810e9deSArgyrios Kyrtzidis // RUN: c-index-test -write-pch %t2.h.pch %s -include %t1.h
32*2810e9deSArgyrios Kyrtzidis // RUN: c-index-test -code-completion-at=%s:25:1 %s -include %t2.h | FileCheck -check-prefix=CHECK-TU %s
33*2810e9deSArgyrios Kyrtzidis // RUN: c-index-test -code-completion-at=%s:25:7 %s -include %t2.h | FileCheck -check-prefix=CHECK-NAMESPACE %s
34