From d368135f692652e33e4f9c7269935613d4e00f14 Mon Sep 17 00:00:00 2001
From: Eric Botcazou <ebotcazou@gcc.gnu.org>
Date: Mon, 11 Nov 2013 16:59:23 +0000
Subject: [PATCH] gimplify.c (gimplify_init_constructor): Do not clear the
 object when the constructor is incomplete and...

	* 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 | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gcc/gimplify.c b/gcc/gimplify.c
index 2875a07c3046..914766ad3b00 100644
--- a/gcc/gimplify.c
+++ b/gcc/gimplify.c
@@ -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
-- 
GitLab