// 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; }