diff options
author | Douglas Gregor <dgregor@apple.com> | 2010-08-22 16:15:35 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2010-08-22 16:15:35 +0000 |
commit | 630c76efb0e40498d8d8fc27b0d237c82644cdf6 (patch) | |
tree | b4a96e88b8308ae7cadc355c7c5e2d2020c7ecfc /clang/lib/CodeGen/CGExprAgg.cpp | |
parent | fae824a32df7241749d9d030661807e65d8defa9 (diff) | |
download | bcm5719-llvm-630c76efb0e40498d8d8fc27b0d237c82644cdf6.tar.gz bcm5719-llvm-630c76efb0e40498d8d8fc27b0d237c82644cdf6.zip |
When performing value-initialization for a class with a non-trivial,
implicitly-defined default constructor, zero-initialize the memory
before calling the default constructor. Previously, we would only
zero-initialize in the case of a trivial default constructor.
Also, simplify the hideous logic that determines when we have a
trivial default constructor and, therefore, don't need to emit any
call at all.
llvm-svn: 111779
Diffstat (limited to 'clang/lib/CodeGen/CGExprAgg.cpp')
-rw-r--r-- | clang/lib/CodeGen/CGExprAgg.cpp | 4 |
1 files changed, 0 insertions, 4 deletions
diff --git a/clang/lib/CodeGen/CGExprAgg.cpp b/clang/lib/CodeGen/CGExprAgg.cpp index 890a07f9fb2..1b6254f1923 100644 --- a/clang/lib/CodeGen/CGExprAgg.cpp +++ b/clang/lib/CodeGen/CGExprAgg.cpp @@ -450,10 +450,6 @@ AggExprEmitter::VisitCXXConstructExpr(const CXXConstructExpr *E) { if (!Val) // Create a temporary variable. Val = CGF.CreateMemTemp(E->getType(), "tmp"); - if (E->requiresZeroInitialization()) - EmitNullInitializationToLValue(CGF.MakeAddrLValue(Val, E->getType()), - E->getType()); - CGF.EmitCXXConstructExpr(Val, E); } |