| // rdar://8453812 | |
| extern "C" void abort(); | |
| _Complex int getComplex(_Complex int val) { | |
| static int count; | |
| if (count++) | |
| abort(); | |
| return val; | |
| } | |
| _Complex int cmplx_test() { | |
| _Complex int cond; | |
| _Complex int rhs; | |
| return getComplex(1+2i) ? : rhs; | |
| } | |
| // lvalue test | |
| int global = 1; | |
| void foo (int& lv) { | |
| ++lv; | |
| } | |
| int &cond() { | |
| static int count; | |
| if (count++) | |
| abort(); | |
| return global; | |
| } | |
| int main() { | |
| cmplx_test(); | |
| int rhs = 10; | |
| foo (cond()? : rhs); | |
| return global-2; | |
| } |