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