diff options
author | Richard Henderson <rth@redhat.com> | 2002-04-25 19:09:21 -0700 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2002-04-25 19:09:21 -0700 |
commit | 28ce94d46b9b885cc01f1649bc545b6978e033d0 (patch) | |
tree | 4a931fb3b190e74b7b06146ab1b95ce028e29ffc | |
parent | 6bfd0c63fe2dd008297767295656c24048475a3f (diff) | |
download | gcc-28ce94d46b9b885cc01f1649bc545b6978e033d0.zip gcc-28ce94d46b9b885cc01f1649bc545b6978e033d0.tar.gz gcc-28ce94d46b9b885cc01f1649bc545b6978e033d0.tar.bz2 |
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
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/expmed.c | 3 |
2 files changed, 8 insertions, 1 deletions
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 <rth@redhat.com> + + 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 <davem@redhat.com> * 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. */ |