xref: /llvm-project/clang/test/CodeGen/conditional-gnu-ext.c (revision d618f1c3b12effd0c2bdb7d02108d3551f389d3d)
1 // RUN: %clang_cc1 -emit-llvm %s -o %t
2 // PR1824
3 
4 int foo(int x, short y) {
5   return x ?: y;
6 }
7 
8 float test(float x, int Y) {
9   return Y != 0 ? : x;
10 }
11 
12 extern void abort(void);
13 void  test1 (void) {
14   char x[1];
15   char *y = x ? : 0;
16 
17   if (x != y)
18     abort();
19 }
20 
21 _Complex int getComplex(_Complex int val) {
22   static int count;
23   if (count++)
24     abort();
25   return val;
26 }
27 
28 _Complex int complx(void) {
29     _Complex int cond;
30     _Complex int rhs;
31 
32     return getComplex(1+2i) ? : rhs;
33 }
34