summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGenCXX/mangle-exprs.cpp
diff options
context:
space:
mode:
authorRichard Smith <richard-llvm@metafoo.co.uk>2015-02-05 06:15:50 +0000
committerRichard Smith <richard-llvm@metafoo.co.uk>2015-02-05 06:15:50 +0000
commit520449d55e5853ca995446988e9be58b0bb3c436 (patch)
tree9fde365e45279893b2771e0253cbf577beae50e1 /clang/test/CodeGenCXX/mangle-exprs.cpp
parentabd271b4e8cbe6c1ba204ab58a74e086b47eb73d (diff)
downloadbcm5719-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.cpp26
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_
+ }
+}
OpenPOWER on IntegriCloud