diff options
Diffstat (limited to 'clang/test/CodeGenCXX/mangle-exprs.cpp')
-rw-r--r-- | clang/test/CodeGenCXX/mangle-exprs.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/clang/test/CodeGenCXX/mangle-exprs.cpp b/clang/test/CodeGenCXX/mangle-exprs.cpp index 1048a31dbb2..ee2d546938e 100644 --- a/clang/test/CodeGenCXX/mangle-exprs.cpp +++ b/clang/test/CodeGenCXX/mangle-exprs.cpp @@ -298,6 +298,8 @@ namespace test7 { struct B { B(int, int); } extern b; struct C { C(B); }; struct D { D(C); }; + struct E { E(std::initializer_list<int>); }; + struct F { F(E); }; template<class T> decltype(A{1,2},T()) fA1(T t) {} template<class T> decltype(A({1,2}),T()) fA2(T t) {} @@ -307,6 +309,10 @@ namespace test7 { template<class T> decltype(C({1,2}),T()) fC2(T t) {} template<class T> decltype(D{b},T()) fD1(T t) {} template<class T> decltype(D(b),T()) fD2(T t) {} + template<class T> decltype(E{1,2},T()) fE1(T t) {} + template<class T> decltype(E({1,2}),T()) fE2(T t) {} + template<class T> decltype(F{{1,2}},T()) fF1(T t) {} + template<class T> decltype(F({1,2}),T()) fF2(T t) {} int main() { fA1(1); // CHECK-LABEL: define {{.*}} @_ZN5test73fA1IiEEDTcmtlNS_1AELi1ELi2EEcvT__EES2_ @@ -317,5 +323,9 @@ namespace test7 { fC2(1); // CHECK-LABEL: define {{.*}} @_ZN5test73fC2IiEEDTcmcvNS_1CEilLi1ELi2EEcvT__EES2_ fD1(1); // CHECK-LABEL: define {{.*}} @_ZN5test73fD1IiEEDTcmtlNS_1DEL_ZNS_1bEEEcvT__EES2_ fD2(1); // CHECK-LABEL: define {{.*}} @_ZN5test73fD2IiEEDTcmcvNS_1DEL_ZNS_1bEEcvT__EES2_ + fE1(1); // CHECK-LABEL: define {{.*}} @_ZN5test73fE1IiEEDTcmtlNS_1EELi1ELi2EEcvT__EES2_ + fE2(1); // CHECK-LABEL: define {{.*}} @_ZN5test73fE2IiEEDTcmcvNS_1EEilLi1ELi2EEcvT__EES2_ + fF1(1); // CHECK-LABEL: define {{.*}} @_ZN5test73fF1IiEEDTcmtlNS_1FEilLi1ELi2EEEcvT__EES2_ + fF2(1); // CHECK-LABEL: define {{.*}} @_ZN5test73fF2IiEEDTcmcvNS_1FEilLi1ELi2EEcvT__EES2_ } } |