diff options
author | Richard Smith <richard-llvm@metafoo.co.uk> | 2014-07-25 01:12:44 +0000 |
---|---|---|
committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2014-07-25 01:12:44 +0000 |
commit | fc291269d1683418613e7ef05d9f780733f5111c (patch) | |
tree | 569f539904f8b7564ef43b63ac9742cf3a8f845a /test/CodeGenCXX/cxx0x-initializer-stdinitializerlist.cpp | |
parent | fd8641ce34f7bf2e5ec9873aa9182ec70aa1f8c6 (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.cpp | 10 |
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( +} |