diff options
author | Richard Smith <richard-llvm@metafoo.co.uk> | 2015-02-05 06:15:50 +0000 |
---|---|---|
committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2015-02-05 06:15:50 +0000 |
commit | 520449d55e5853ca995446988e9be58b0bb3c436 (patch) | |
tree | 9fde365e45279893b2771e0253cbf577beae50e1 /clang/test/CodeGenCXX/mangle-exprs.cpp | |
parent | abd271b4e8cbe6c1ba204ab58a74e086b47eb73d (diff) | |
download | bcm5719-llvm-520449d55e5853ca995446988e9be58b0bb3c436.tar.gz bcm5719-llvm-520449d55e5853ca995446988e9be58b0bb3c436.zip |
Various fixes to mangling of list-initialization.
llvm-svn: 228274
Diffstat (limited to 'clang/test/CodeGenCXX/mangle-exprs.cpp')
-rw-r--r-- | clang/test/CodeGenCXX/mangle-exprs.cpp | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/clang/test/CodeGenCXX/mangle-exprs.cpp b/clang/test/CodeGenCXX/mangle-exprs.cpp index ee7f24466b0..1048a31dbb2 100644 --- a/clang/test/CodeGenCXX/mangle-exprs.cpp +++ b/clang/test/CodeGenCXX/mangle-exprs.cpp @@ -293,3 +293,29 @@ namespace test6 { // CHECK-LABEL: define weak_odr void @_ZN5test62f8IiEEvDTcvT_dtptL_ZNS_2zpEE4uuss1iE } +namespace test7 { + struct A { int x[3]; }; + struct B { B(int, int); } extern b; + struct C { C(B); }; + struct D { D(C); }; + + template<class T> decltype(A{1,2},T()) fA1(T t) {} + template<class T> decltype(A({1,2}),T()) fA2(T t) {} + template<class T> decltype(B{1,2},T()) fB1(T t) {} + template<class T> decltype(B({1,2}),T()) fB2(T t) {} + template<class T> decltype(C{{1,2}},T()) fC1(T t) {} + 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) {} + + int main() { + fA1(1); // CHECK-LABEL: define {{.*}} @_ZN5test73fA1IiEEDTcmtlNS_1AELi1ELi2EEcvT__EES2_ + fA2(1); // CHECK-LABEL: define {{.*}} @_ZN5test73fA2IiEEDTcmcvNS_1AEilLi1ELi2EEcvT__EES2_ + fB1(1); // CHECK-LABEL: define {{.*}} @_ZN5test73fB1IiEEDTcmtlNS_1BELi1ELi2EEcvT__EES2_ + fB2(1); // CHECK-LABEL: define {{.*}} @_ZN5test73fB2IiEEDTcmcvNS_1BEilLi1ELi2EEcvT__EES2_ + fC1(1); // CHECK-LABEL: define {{.*}} @_ZN5test73fC1IiEEDTcmtlNS_1CEilLi1ELi2EEEcvT__EES2_ + 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_ + } +} |