diff options
| author | Eli Friedman <eli.friedman@gmail.com> | 2012-08-25 07:11:29 +0000 |
|---|---|---|
| committer | Eli Friedman <eli.friedman@gmail.com> | 2012-08-25 07:11:29 +0000 |
| commit | 48ddcf2cb57caf57f8e1f1029f39fc490de74e08 (patch) | |
| tree | c4150dcdc3ae326df0e6b80187f44fcbc6202081 /clang/test/CodeGenCXX | |
| parent | a374bf0ae1e8e941cbb33a0a92c3ab660697e875 (diff) | |
| download | bcm5719-llvm-48ddcf2cb57caf57f8e1f1029f39fc490de74e08.tar.gz bcm5719-llvm-48ddcf2cb57caf57f8e1f1029f39fc490de74e08.zip | |
Fix a CodeGen bug where we would skip zero-initialization for
array new with a non-trivial constructor. Pointed out in PR13380.
llvm-svn: 162643
Diffstat (limited to 'clang/test/CodeGenCXX')
| -rw-r--r-- | clang/test/CodeGenCXX/new.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/clang/test/CodeGenCXX/new.cpp b/clang/test/CodeGenCXX/new.cpp index 8d9f641ba1c..e0523909a3d 100644 --- a/clang/test/CodeGenCXX/new.cpp +++ b/clang/test/CodeGenCXX/new.cpp @@ -250,3 +250,13 @@ namespace PR11757 { // CHECK-NEXT: call void @_ZN7PR117571XC1Ev({{.*}}* [[CASTED]]) // CHECK-NEXT: ret {{.*}} [[CASTED]] } + +namespace PR13380 { + struct A { A() {} }; + struct B : public A { int x; }; + // CHECK: define i8* @_ZN7PR133801fEv + // CHECK: call noalias i8* @_Znam( + // CHECK: call void @llvm.memset.p0i8 + // CHECK-NEXT: call void @_ZN7PR133801BC1Ev + void* f() { return new B[2](); } +} |

