summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CGExprCXX.cpp
diff options
context:
space:
mode:
authorEli Friedman <eli.friedman@gmail.com>2012-02-16 22:45:48 +0000
committerEli Friedman <eli.friedman@gmail.com>2012-02-16 22:45:48 +0000
commitb971d497654c6b68bbed9b399771fd39a1cdfd2e (patch)
tree497403ce71fd30c4338eb1008fb721f7a3e921c5 /clang/lib/CodeGen/CGExprCXX.cpp
parenta0d3c7501565978eb6e8a42d0cd3146cd89e3a72 (diff)
downloadbcm5719-llvm-b971d497654c6b68bbed9b399771fd39a1cdfd2e.tar.gz
bcm5719-llvm-b971d497654c6b68bbed9b399771fd39a1cdfd2e.zip
Elide copy construction in new expressions. PR11757.
llvm-svn: 150738
Diffstat (limited to 'clang/lib/CodeGen/CGExprCXX.cpp')
-rw-r--r--clang/lib/CodeGen/CGExprCXX.cpp14
1 files changed, 0 insertions, 14 deletions
diff --git a/clang/lib/CodeGen/CGExprCXX.cpp b/clang/lib/CodeGen/CGExprCXX.cpp
index 12bdc7e43f7..47e57032e09 100644
--- a/clang/lib/CodeGen/CGExprCXX.cpp
+++ b/clang/lib/CodeGen/CGExprCXX.cpp
@@ -890,20 +890,6 @@ static void EmitNewInitializer(CodeGenFunction &CGF, const CXXNewExpr *E,
return;
}
- if (const CXXConstructExpr *CCE = dyn_cast_or_null<CXXConstructExpr>(Init)) {
- CXXConstructorDecl *Ctor = CCE->getConstructor();
- // Per C++ [expr.new]p15, if we have an initializer, then we're performing
- // direct initialization. C++ [dcl.init]p5 requires that we
- // zero-initialize storage if there are no user-declared constructors.
- if (!Ctor->getParent()->hasUserDeclaredConstructor() &&
- !Ctor->getParent()->isEmpty())
- CGF.EmitNullInitialization(NewPtr, ElementType);
-
- CGF.EmitCXXConstructorCall(Ctor, Ctor_Complete, /*ForVirtualBase=*/false,
- NewPtr, CCE->arg_begin(), CCE->arg_end());
- return;
- }
- // We have a POD type.
if (!Init)
return;
OpenPOWER on IntegriCloud