1 // RUN: %clang_cc1 -emit-llvm-only -x c++ -std=c++11 -triple %itanium_abi_triple -verify %s -DN=1 2 // RUN: %clang_cc1 -emit-llvm-only -x c++ -std=c++11 -triple %itanium_abi_triple -verify %s -DN=2 3 4 struct A { int a; }; 5 6 #if N == 1 7 // ChooseExpr 8 template<class T> void test(int (&)[sizeof(__builtin_choose_expr(true, 1, 1), T())]) {} // expected-error {{cannot yet mangle}} 9 template void test<int>(int (&)[sizeof(int)]); 10 11 #elif N == 2 12 // CompoundLiteralExpr 13 template<class T> void test(int (&)[sizeof((A){}, T())]) {} // expected-error {{cannot yet mangle}} 14 template void test<int>(int (&)[sizeof(A)]); 15 16 // FIXME: There are several more cases we can't yet mangle. 17 18 #else 19 #error unknown N 20 #endif 21