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