From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 18251 invoked by alias); 19 Aug 2009 17:43:03 -0000 Received: (qmail 18207 invoked by uid 48); 19 Aug 2009 17:42:45 -0000 Date: Wed, 19 Aug 2009 17:43:00 -0000 Message-ID: <20090819174245.18206.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug middle-end/41123] [4.4 Regression] ICE in expand_expr_real_1 In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "jakub at gcc dot gnu dot org" 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 X-SW-Source: 2009-08/txt/msg01599.txt.bz2 ------- Comment #1 from jakub at gcc dot gnu dot org 2009-08-19 17:42 ------- Since PR6177 that part of expand_expr* at least handles whole CONCAT, but as can be seen on this testcase, since VCE can be used, it should be probably handled fully. On this testcase it could be handled just by giving one part of the CONCAT, but e.g. on: typedef struct { char a, b, c, d, e, f, g, h; } F; F foo (float _Complex x) { return *(F *) &x; } int bar (float _Complex x) { F f = foo (x); return f.b; } I'm afraid it just needs to store it into memory. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41123