From 630c76efb0e40498d8d8fc27b0d237c82644cdf6 Mon Sep 17 00:00:00 2001 From: Douglas Gregor Date: Sun, 22 Aug 2010 16:15:35 +0000 Subject: 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 --- clang/lib/CodeGen/CGExprAgg.cpp | 4 ---- 1 file changed, 4 deletions(-) (limited to 'clang/lib/CodeGen/CGExprAgg.cpp') 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); } -- cgit v1.2.3