gimplify.c (gimplify_init_constructor): Do not clear the object when the constructor...
authorEric Botcazou <ebotcazou@gcc.gnu.org>
Mon, 11 Nov 2013 16:59:23 +0000 (16:59 +0000)
committerEric Botcazou <ebotcazou@gcc.gnu.org>
Mon, 11 Nov 2013 16:59:23 +0000 (16:59 +0000)
* gimplify.c (gimplify_init_constructor): Do not clear the object when
the constructor is incomplete and CONSTRUCTOR_NO_CLEARING is set.

From-SVN: r204678

gcc/gimplify.c

index 2875a07..914766a 100644 (file)
@@ -4052,9 +4052,9 @@ gimplify_init_constructor (tree *expr_p, gimple_seq *pre_p, gimple_seq *post_p,
             objects.  Initializers for such objects must explicitly set
             every field that needs to be set.  */
          cleared = false;
-       else if (!complete_p)
+       else if (!complete_p && !CONSTRUCTOR_NO_CLEARING (ctor))
          /* If the constructor isn't complete, clear the whole object
-            beforehand.
+            beforehand, unless CONSTRUCTOR_NO_CLEARING is set on it.
 
             ??? This ought not to be needed.  For any element not present
             in the initializer, we should simply set them to zero.  Except