]> granicus.if.org Git - clang/commitdiff
Avoid generating additional destructor(s) for initialized constructed
authorFariborz Jahanian <fjahanian@apple.com>
Wed, 11 Nov 2009 01:13:34 +0000 (01:13 +0000)
committerFariborz Jahanian <fjahanian@apple.com>
Wed, 11 Nov 2009 01:13:34 +0000 (01:13 +0000)
objects.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86778 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/CGCXX.cpp

index bb8041f567cd687d86d8d8697bacc9521dc78944..40e90ee4338c801c4023b4f795ba58c9beb653ef 100644 (file)
@@ -79,6 +79,9 @@ void CodeGenFunction::EmitCXXGlobalVarDeclInit(const VarDecl &D,
     EmitComplexExprIntoAddr(Init, DeclPtr, isVolatile);
   } else {
     EmitAggExpr(Init, DeclPtr, isVolatile);
+    // Avoid generating destructor(s) for initialized objects. 
+    if (!isa<CXXConstructExpr>(Init))
+      return;
     const ConstantArrayType *Array = getContext().getAsConstantArrayType(T);
     if (Array)
       T = getContext().getBaseElementType(Array);