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 | c6abd96bffa1d5743e985235863bc75c3ed58036 (patch) | |
tree | 4bd0a43a328adab0c1916f86cb260a59ddf8e119 /clang/test/CodeGenCXX/cxx0x-initializer-stdinitializerlist.cpp | |
parent | d86c901f29b673161a8728ad853abff262cceb42 (diff) | |
download | bcm5719-llvm-c6abd96bffa1d5743e985235863bc75c3ed58036.tar.gz bcm5719-llvm-c6abd96bffa1d5743e985235863bc75c3ed58036.zip |
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).
llvm-svn: 213913
Diffstat (limited to 'clang/test/CodeGenCXX/cxx0x-initializer-stdinitializerlist.cpp')
-rw-r--r-- | clang/test/CodeGenCXX/cxx0x-initializer-stdinitializerlist.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/clang/test/CodeGenCXX/cxx0x-initializer-stdinitializerlist.cpp b/clang/test/CodeGenCXX/cxx0x-initializer-stdinitializerlist.cpp index 33bd8441040..4d30344e3c8 100644 --- a/clang/test/CodeGenCXX/cxx0x-initializer-stdinitializerlist.cpp +++ b/clang/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( +} |