From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 112776 invoked by alias); 22 Apr 2015 16:40:32 -0000 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org Received: (qmail 112704 invoked by uid 48); 22 Apr 2015 16:40:28 -0000 From: "vries at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug tree-optimization/65818] [6 Regression] libiberty/vprintf-support.c:41:1: ICE: in expand_i fn_va_arg_1, at tree-stdarg.c:1095 Date: Wed, 22 Apr 2015 16:40:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: tree-optimization X-Bugzilla-Version: 6.0 X-Bugzilla-Keywords: build X-Bugzilla-Severity: normal X-Bugzilla-Who: vries at gcc dot gnu.org X-Bugzilla-Status: ASSIGNED X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: vries at gcc dot gnu.org X-Bugzilla-Target-Milestone: 6.0 X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-SW-Source: 2015-04/txt/msg01918.txt.bz2 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65818 --- Comment #7 from vries at gcc dot gnu.org --- Hmm, this patch has failures for x86_64: - va_arg (ap, void): gcc.c-torture/compile/pr48767.c - vla: gcc.c-torture/execute/20020412-1.c gcc.dg/compat/struct-by-value-22 gcc.dg/lto/20090706-1 gcc.target/i386/memcpy-strategy-4.c this patch is more conservative: ... diff --git a/gcc/gimplify.c b/gcc/gimplify.c index 7786e16..e23f510 100644 --- a/gcc/gimplify.c +++ b/gcc/gimplify.c @@ -9336,7 +9336,12 @@ gimplify_va_arg_internal (tree valist, tree type, location_t loc, else gimplify_expr (&valist, pre_p, post_p, is_gimple_min_lval, fb_lvalue); - return targetm.gimplify_va_arg_expr (valist, type, pre_p, post_p); + tree expr = targetm.gimplify_va_arg_expr (valist, type, pre_p, post_p); + gcc_assert (TREE_CODE (expr) == MEM_REF); + if (!is_gimple_mem_ref_addr (TREE_OPERAND (expr, 0))) + gimplify_expr (&TREE_OPERAND (expr, 0), pre_p, post_p, + is_gimple_mem_ref_addr, fb_rvalue); + return expr; } /* Gimplify __builtin_va_arg, aka VA_ARG_EXPR, which is not really a ... It allows at least pr48767.c, 20020412-1.c and memcpy-strategy-4.c to pass.