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