aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/CodeGen/CGCXX.cpp2
-rw-r--r--test/CodeGenCXX/new.cpp4
2 files changed, 5 insertions, 1 deletions
diff --git a/lib/CodeGen/CGCXX.cpp b/lib/CodeGen/CGCXX.cpp
index 32152f96bf..731e38c514 100644
--- a/lib/CodeGen/CGCXX.cpp
+++ b/lib/CodeGen/CGCXX.cpp
@@ -315,7 +315,7 @@ llvm::Value *CodeGenFunction::EmitCXXNewExpr(const CXXNewExpr *E) {
NewPtr = Builder.CreateBitCast(NewPtr, ConvertType(E->getType()));
if (AllocType->isPODType()) {
- if (E->hasInitializer()) {
+ if (E->getNumConstructorArgs() > 0) {
assert(E->getNumConstructorArgs() == 1 &&
"Can only have one argument to initializer of POD type.");
diff --git a/test/CodeGenCXX/new.cpp b/test/CodeGenCXX/new.cpp
index 70ad269d24..480bbcefc0 100644
--- a/test/CodeGenCXX/new.cpp
+++ b/test/CodeGenCXX/new.cpp
@@ -50,3 +50,7 @@ int *t6() {
// Null check.
return new (0) int(10);
}
+
+void t7() {
+ new int();
+}