summaryrefslogtreecommitdiffstats
path: root/test/CodeGenCXX/cxx0x-initializer-stdinitializerlist.cpp
diff options
context:
space:
mode:
authorRichard Smith <richard-llvm@metafoo.co.uk>2014-07-25 01:12:44 +0000
committerRichard Smith <richard-llvm@metafoo.co.uk>2014-07-25 01:12:44 +0000
commitfc291269d1683418613e7ef05d9f780733f5111c (patch)
tree569f539904f8b7564ef43b63ac9742cf3a8f845a /test/CodeGenCXX/cxx0x-initializer-stdinitializerlist.cpp
parentfd8641ce34f7bf2e5ec9873aa9182ec70aa1f8c6 (diff)
PR20445: Properly transform the initializer in a CXXNewExpr rather than running
it through the normal TreeTransform logic for Exprs (which will strip off implicit parts of the initialization and never re-create them). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@213913 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGenCXX/cxx0x-initializer-stdinitializerlist.cpp')
-rw-r--r--test/CodeGenCXX/cxx0x-initializer-stdinitializerlist.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/test/CodeGenCXX/cxx0x-initializer-stdinitializerlist.cpp b/test/CodeGenCXX/cxx0x-initializer-stdinitializerlist.cpp
index 33bd844104..4d30344e3c 100644
--- a/test/CodeGenCXX/cxx0x-initializer-stdinitializerlist.cpp
+++ b/test/CodeGenCXX/cxx0x-initializer-stdinitializerlist.cpp
@@ -455,3 +455,13 @@ namespace ArrayOfInitList {
};
S x[1] = {};
}
+
+namespace PR20445 {
+ struct vector { vector(std::initializer_list<int>); };
+ struct MyClass { explicit MyClass(const vector &v); };
+ template<int x> void f() { new MyClass({42, 43}); }
+ template void f<0>();
+ // CHECK-LABEL: define {{.*}} @_ZN7PR204451fILi0EEEvv(
+ // CHECK: call void @_ZN7PR204456vectorC1ESt16initializer_listIiE(
+ // CHECK: call void @_ZN7PR204457MyClassC1ERKNS_6vectorE(
+}