From: Richard Henderson Date: Fri, 26 Apr 2002 02:09:21 +0000 (-0700) Subject: re PR c/2035 (ICE in extract_bit_field, at expmed.c:1115) X-Git-Tag: releases/gcc-3.3.0~5467 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=28ce94d46b9b885cc01f1649bc545b6978e033d0;p=thirdparty%2Fgcc.git re PR c/2035 (ICE in extract_bit_field, at expmed.c:1115) PR c/2035 * expmed.c (extract_bit_field): Fall through to generic code rather than aborting on subreg special case. From-SVN: r52777 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f1df34d72fa0..76182b9a1445 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2002-04-25 Richard Henderson + + PR c/2035 + * expmed.c (extract_bit_field): Fall through to generic code rather + than aborting on subreg special case. + 2002-04-25 David S. Miller * config/sparc/sparc.h (FUNCTION_OK_FOR_SIBCALL): Add back check diff --git a/gcc/expmed.c b/gcc/expmed.c index e60ccbf79241..5a4c24ea68ac 100644 --- a/gcc/expmed.c +++ b/gcc/expmed.c @@ -1144,7 +1144,7 @@ extract_bit_field (str_rtx, bitsize, bitnum, unsignedp, /* Else we've got some float mode source being extracted into a different float mode destination -- this combination of subregs results in Severe Tire Damage. */ - abort (); + goto no_subreg_mode_swap; } if (GET_CODE (op0) == REG) op0 = gen_rtx_SUBREG (mode1, op0, byte_offset); @@ -1155,6 +1155,7 @@ extract_bit_field (str_rtx, bitsize, bitnum, unsignedp, return convert_to_mode (tmode, op0, unsignedp); return op0; } + no_subreg_mode_swap: /* Handle fields bigger than a word. */