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: "denisc at overta dot ru" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 4 Feb 2004 06:24:56 -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 denisc at overta dot ru 2004-02-04 06:24 -------
Subject: Re: [3.4/3.5 regression] ip2k-elf ICE on multiple gotos
"steven at gcc dot gnu dot org" <gcc-bugzilla@gcc.gnu.org> writes:
> ------- 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...
Thank you. I'm already founded and fixed this bug, but I'm not
committed the fix because ip2k-gcc can't compile libgcc because of
problem with reloading of single possible pointer register DP twice
for one insn.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=13754