teak-llvm/clang/test/CodeGen/conditional-gnu-ext.c
Fariborz Jahanian 2b1d88abfb Problem with gnu conditional extension with missing
LHS and when conditional expression is an array. Since
it will be decayed, saved expression must be saved with
decayed expression. This is necessary to preserve semantics
of this extension (and prevent an IRGen crash which expects
an array to always be decayed). I am sure there will be other
cases in c++ (aggregate conditionals for example) when saving of the 
expression must happen after some transformation on conditional
expression has happened. 
Doug, please review.  Fixes // rdar://8446940

llvm-svn: 114296
2010-09-18 19:38:38 +00:00

22 lines
289 B
C

// RUN: %clang_cc1 -emit-llvm %s -o %t
// PR1824
int foo(int x, short y) {
return x ?: y;
}
// rdar://6586493
float test(float x, int Y) {
return Y != 0 ? : x;
}
// rdar://8446940
extern void abort();
void test1 () {
char x[1];
char *y = x ? : 0;
if (x != y)
abort();
}