1*67e74705SXin Li // RUN: %clang_cc1 -emit-llvm %s -o %t 2*67e74705SXin Li // PR1824 3*67e74705SXin Li foo(int x,short y)4*67e74705SXin Liint foo(int x, short y) { 5*67e74705SXin Li return x ?: y; 6*67e74705SXin Li } 7*67e74705SXin Li 8*67e74705SXin Li // rdar://6586493 test(float x,int Y)9*67e74705SXin Lifloat test(float x, int Y) { 10*67e74705SXin Li return Y != 0 ? : x; 11*67e74705SXin Li } 12*67e74705SXin Li 13*67e74705SXin Li // rdar://8446940 14*67e74705SXin Li extern void abort(); test1()15*67e74705SXin Livoid test1 () { 16*67e74705SXin Li char x[1]; 17*67e74705SXin Li char *y = x ? : 0; 18*67e74705SXin Li 19*67e74705SXin Li if (x != y) 20*67e74705SXin Li abort(); 21*67e74705SXin Li } 22*67e74705SXin Li 23*67e74705SXin Li // rdar://8453812 getComplex(_Complex int val)24*67e74705SXin Li_Complex int getComplex(_Complex int val) { 25*67e74705SXin Li static int count; 26*67e74705SXin Li if (count++) 27*67e74705SXin Li abort(); 28*67e74705SXin Li return val; 29*67e74705SXin Li } 30*67e74705SXin Li complx()31*67e74705SXin Li_Complex int complx() { 32*67e74705SXin Li _Complex int cond; 33*67e74705SXin Li _Complex int rhs; 34*67e74705SXin Li 35*67e74705SXin Li return getComplex(1+2i) ? : rhs; 36*67e74705SXin Li } 37