This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/13754] [3.4/3.5 regression] ip2k-elf ICE on multiple gotos
- From: "steven at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 3 Feb 2004 22:35:01 -0000
- Subject: [Bug target/13754] [3.4/3.5 regression] ip2k-elf ICE on multiple gotos
- References: <20040120004204.13754.dhazeghi@yahoo.com>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Additional Comments From steven at gcc dot gnu dot org 2004-02-03 22:34 -------
Backtrace:
#0 internal_error (msgid=0x824e611 "in %s, at %s:%d") at ../../gcc-3.4/gcc/
diagnostic.c:536
#1 0x080c0e16 in fancy_abort (file=0x827a280 "../../gcc-3.4/gcc/
simplify-rtx.c", line=3410,
function=0x827a266 "simplify_gen_subreg") at ../../gcc-3.4/gcc/
diagnostic.c:584
#2 0x081b468f in simplify_gen_subreg (outermode=VOIDmode, op=0x4001d210,
innermode=1728053248, byte=4)
at ../../gcc-3.4/gcc/simplify-rtx.c:3410
#3 0x080d6f9c in gen_lowpart_common (mode=VOIDmode, x=0x4001d210) at ../../
gcc-3.4/gcc/emit-rtl.c:1106
#4 0x080d7177 in gen_lowpart (mode=VOIDmode, x=0x4001d210) at ../../gcc-3.4/
gcc/emit-rtl.c:1212
#5 0x080f8e52 in try_casesi (index_type=0x400244a4, index_expr=0x4001d210,
minval=0x40197e9c,
range=0x40197f00, table_label=0x40023398, default_label=0x400231e0)
at ../../gcc-3.4/gcc/expr.c:9674
#6 0x081bbb56 in expand_end_case_type (orig_index=0x827a266,
orig_type=0x400244a4)
at ../../gcc-3.4/gcc/stmt.c:5617
#7 0x0807ea02 in genrtl_switch_stmt (t=0x400244a4) at ../../gcc-3.4/gcc/
c-semantics.c:673
#8 0x0807ed4f in expand_stmt (t=0x40020100) at ../../gcc-3.4/gcc/
c-semantics.c:840
#9 0x0807edbe in expand_stmt (t=0x40197e10) at ../../gcc-3.4/gcc/
c-semantics.c:826
#10 0x081e751b in tree_rest_of_compilation (fndecl=0x401ddec4, nested_p=false)
at ../../gcc-3.4/gcc/tree-optimize.c:144
Note how gen_lowpart is called with VOIDmode. There is a
convert_modes call on expr:9674 (from try_casesi) and gen_lowpart
is called from there. The problem is in this line (expr.c:9673):
op_mode = insn_data[(int) CODE_FOR_casesi].operand[1].mode;
op_mode <-- VOIDmode here, which can't be right...
--
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Ever Confirmed| |1
Last reconfirmed|0000-00-00 00:00:00 |2004-02-03 22:35:00
date| |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=13754