summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGenCXX/cxx0x-initializer-stdinitializerlist.cpp
diff options
context:
space:
mode:
authorSebastian Redl <sebastian.redl@getdesigned.at>2012-02-19 16:03:09 +0000
committerSebastian Redl <sebastian.redl@getdesigned.at>2012-02-19 16:03:09 +0000
commitd026dc499c620d0a28f492cbfc86a036c44b936e (patch)
tree8623654a9b28affb1807caaed6d727287616836d /clang/test/CodeGenCXX/cxx0x-initializer-stdinitializerlist.cpp
parent4e04dd1979795f7a674479bbf48ee2ead19a3933 (diff)
downloadbcm5719-llvm-d026dc499c620d0a28f492cbfc86a036c44b936e.tar.gz
bcm5719-llvm-d026dc499c620d0a28f492cbfc86a036c44b936e.zip
Make heap-allocation of std::initializer_list 'work'.
llvm-svn: 150931
Diffstat (limited to 'clang/test/CodeGenCXX/cxx0x-initializer-stdinitializerlist.cpp')
-rw-r--r--clang/test/CodeGenCXX/cxx0x-initializer-stdinitializerlist.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/clang/test/CodeGenCXX/cxx0x-initializer-stdinitializerlist.cpp b/clang/test/CodeGenCXX/cxx0x-initializer-stdinitializerlist.cpp
index 55e39922385..2d7ff46ef79 100644
--- a/clang/test/CodeGenCXX/cxx0x-initializer-stdinitializerlist.cpp
+++ b/clang/test/CodeGenCXX/cxx0x-initializer-stdinitializerlist.cpp
@@ -195,3 +195,23 @@ haslist2::haslist2()
// CHECK: call void @_ZN10destroyme2D1Ev
// CHECK: call void @_ZN10destroyme1D1Ev
}
+
+void fn10() {
+ // CHECK: define void @_Z4fn10v
+ // CHECK: alloca [3 x i32]
+ // CHECK: call noalias i8* @_Znwm
+ // CHECK: store i32 1
+ // CHECK: store i32 2
+ // CHECK: store i32 3
+ // CHECK: store i32*
+ // CHECK: store i{{32|64}} 3
+ (void) new std::initializer_list<int> {1, 2, 3};
+}
+
+void fn11() {
+ // CHECK: define void @_Z4fn11v
+ (void) new std::initializer_list<destroyme1> {destroyme1(), destroyme1()};
+ // CHECK: call void @_ZN10destroyme1D1Ev
+ destroyme2 dm2;
+ // CHECK: call void @_ZN10destroyme2D1Ev
+}
OpenPOWER on IntegriCloud