From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 12585 invoked by alias); 19 Oct 2008 12:42:07 -0000 Received: (qmail 12468 invoked by uid 48); 19 Oct 2008 12:40:45 -0000 Date: Sun, 19 Oct 2008 12:42:00 -0000 Message-ID: <20081019124045.12467.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug middle-end/37870] [4.3/4.4 Regression] ICE in extract_bit_field_1 In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "rguenth 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: 2008-10/txt/msg01239.txt.bz2 ------- Comment #1 from rguenth at gcc dot gnu dot org 2008-10-19 12:40 ------- Confirmed. We try to expand return (unsigned int) VIEW_CONVERT_EXPR yyy; }>(arg).yyy; which is SRAed from the gimplified memcpy copy = VIEW_CONVERT_EXPR yyy; }>(arg); to : copy$yyy_5 = 0; copy$dummy$7_6 = VIEW_CONVERT_EXPR yyy; }>(arg_4(D)).dummy[7]; ... SR.9_14 = VIEW_CONVERT_EXPR yyy; }>(arg_4(D)).yyy; copy$yyy_15 = SR.9_14; SR.10_16 = copy$yyy_15; D.1204_1 = SR.10_16; D.1203_2 = (unsigned int) D.1204_1; return D.1203_2; It seems extract_bitfield_1 doesn't have a fallback path going through memory: 1261 /* Make sure we are playing with integral modes. Pun with subregs 1262 if we aren't. */ 1263 { 1264 enum machine_mode imode = int_mode_for_mode (GET_MODE (op0)); 1265 if (imode != GET_MODE (op0)) (gdb) l 1266 { 1267 if (MEM_P (op0)) 1268 op0 = adjust_address (op0, imode, 0); 1269 else 1270 { 1271 gcc_assert (imode != BLKmode); obviously fails on i?86 with (gdb) call debug_rtx (op0) (reg/v:XF 59 [ arg ]) simply not going down this path and relying on the fallback seems to work. -- rguenth at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Component|c |middle-end Ever Confirmed|0 |1 Keywords| |ice-on-valid-code Known to fail| |4.3.2 4.4.0 Known to work| |4.2.4 Last reconfirmed|0000-00-00 00:00:00 |2008-10-19 12:40:45 date| | Summary|ICE in extract_bit_field_1 |[4.3/4.4 Regression] ICE in | |extract_bit_field_1 Target Milestone|--- |4.3.3 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37870