xref: /aosp_15_r20/external/clang/test/CodeGen/conditional-gnu-ext.c (revision 67e74705e28f6214e480b399dd47ea732279e315)
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 Li int 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 Li float 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 Li void  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