From 28ce94d46b9b885cc01f1649bc545b6978e033d0 Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Thu, 25 Apr 2002 19:09:21 -0700 Subject: 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 --- gcc/ChangeLog | 6 ++++++ gcc/expmed.c | 3 ++- 2 files changed, 8 insertions(+), 1 deletion(-) (limited to 'gcc') diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f1df34d..76182b9 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 e60ccbf..5a4c24e 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. */ -- cgit v1.1