13573b2c84372d9484296fa658f5276f6c09acb92Daniel Dunbar// RUN: %clang_cc1 -emit-llvm %s -o %t
298a425c48a67c015e721de9e4d60ce88ad2159f3Chris Lattner// PR1824
398a425c48a67c015e721de9e4d60ce88ad2159f3Chris Lattner
498a425c48a67c015e721de9e4d60ce88ad2159f3Chris Lattnerint foo(int x, short y) {
598a425c48a67c015e721de9e4d60ce88ad2159f3Chris Lattner  return x ?: y;
698a425c48a67c015e721de9e4d60ce88ad2159f3Chris Lattner}
78603171ea17bcea313108bff5c5d325f713b0088Chris Lattner
88603171ea17bcea313108bff5c5d325f713b0088Chris Lattner// rdar://6586493
98603171ea17bcea313108bff5c5d325f713b0088Chris Lattnerfloat test(float x, int Y) {
108603171ea17bcea313108bff5c5d325f713b0088Chris Lattner  return Y != 0 ? : x;
118603171ea17bcea313108bff5c5d325f713b0088Chris Lattner}
128603171ea17bcea313108bff5c5d325f713b0088Chris Lattner
13fe921683933ba702385bd8932926aa9c57e09cd5Fariborz Jahanian// rdar://8446940
14fe921683933ba702385bd8932926aa9c57e09cd5Fariborz Jahanianextern void abort();
15fe921683933ba702385bd8932926aa9c57e09cd5Fariborz Jahanianvoid  test1 () {
16fe921683933ba702385bd8932926aa9c57e09cd5Fariborz Jahanian  char x[1];
17fe921683933ba702385bd8932926aa9c57e09cd5Fariborz Jahanian  char *y = x ? : 0;
18fe921683933ba702385bd8932926aa9c57e09cd5Fariborz Jahanian
19fe921683933ba702385bd8932926aa9c57e09cd5Fariborz Jahanian  if (x != y)
20fe921683933ba702385bd8932926aa9c57e09cd5Fariborz Jahanian    abort();
21fe921683933ba702385bd8932926aa9c57e09cd5Fariborz Jahanian}
227750590d45953514b2a9546abf2208630fee70a1Fariborz Jahanian
237750590d45953514b2a9546abf2208630fee70a1Fariborz Jahanian// rdar://8453812
247750590d45953514b2a9546abf2208630fee70a1Fariborz Jahanian_Complex int getComplex(_Complex int val) {
257750590d45953514b2a9546abf2208630fee70a1Fariborz Jahanian  static int count;
267750590d45953514b2a9546abf2208630fee70a1Fariborz Jahanian  if (count++)
277750590d45953514b2a9546abf2208630fee70a1Fariborz Jahanian    abort();
287750590d45953514b2a9546abf2208630fee70a1Fariborz Jahanian  return val;
297750590d45953514b2a9546abf2208630fee70a1Fariborz Jahanian}
307750590d45953514b2a9546abf2208630fee70a1Fariborz Jahanian
317750590d45953514b2a9546abf2208630fee70a1Fariborz Jahanian_Complex int complx() {
327750590d45953514b2a9546abf2208630fee70a1Fariborz Jahanian    _Complex int cond;
337750590d45953514b2a9546abf2208630fee70a1Fariborz Jahanian    _Complex int rhs;
347750590d45953514b2a9546abf2208630fee70a1Fariborz Jahanian
357750590d45953514b2a9546abf2208630fee70a1Fariborz Jahanian    return getComplex(1+2i) ? : rhs;
367750590d45953514b2a9546abf2208630fee70a1Fariborz Jahanian}
37