1 // RUN: %clang_cc1 %s -emit-llvm -o - -chain-include %s -chain-include %s
2 
3 #if !defined(PASS1)
4 #define PASS1
5 struct X {
6   operator int*();
7 };
8 
9 struct Z {
10   operator int*();
11 };
12 #elif !defined(PASS2)
13 #define PASS2
14 struct Y {
15   operator int *();
16 };
17 #else
18 int main() {
19   X x;
20   int *ip = x.operator int*();
21   Y y;
22   int *ip2 = y.operator int*();
23   Z z;
24   int *ip3 = z.operator int*();
25 }
26 #endif
27