This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug middle-end/53433] [4.8 Regression] ICE in int_mode_for_mode, at stor-layout.c:424 during lto-bootstrap
- From: "ubizjak at gmail dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Wed, 04 Jul 2012 10:58:03 +0000
- Subject: [Bug middle-end/53433] [4.8 Regression] ICE in int_mode_for_mode, at stor-layout.c:424 during lto-bootstrap
- Auto-submitted: auto-generated
- References: <bug-53433-4@http.gcc.gnu.org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53433
--- Comment #23 from Uros Bizjak <ubizjak at gmail dot com> 2012-07-04 10:58:03 UTC ---
Compiling testcase from comment 0, -O0:
(gdb) b builtins.c:3830
Breakpoint 1 at 0x522c91: file ../../gcc-svn/trunk/gcc/builtins.c, line 3830.
(gdb) r
Starting program: /home/uros/gcc-build-xxx/gcc/cc1 -O0 ttt.c
d_unqualified_name
Analyzing compilation unit
Performing interprocedural optimizations
<*free_lang_data> <visibility> <early_local_cleanups>
<whole-program>Assembling functions:
d_unqualified_name
Breakpoint 1, expand_builtin_strcmp (exp=0x7ffff19a5b88, target=0x7ffff1ace360)
at ../../gcc-svn/trunk/gcc/builtins.c:3830
3830 if (len1)
(gdb) li
3827 tree len1 = c_strlen (arg1, 1);
3828 tree len2 = c_strlen (arg2, 1);
3829
3830 if (len1)
(gdb) p insn_mode
$1 = VOIDmode
(gdb) p insn_data[2829]
$2 = {name = 0xdc80ab "cmpstrnsi", output = {single = 0x0, multi = 0x0,
function = 0},
genfun = 0x623d95 <gen_cmpstrnsi(rtx_def*, rtx_def*, rtx_def*, rtx_def*,
rtx_def*)>,
operand = 0xe09e98, n_generator_args = 5 '\005', n_operands = 5 '\005',
n_dups = 0 '\000',
n_alternatives = 0 '\000', output_format = 0 '\000'}
(gdb) p insn_data[2829].operand[0].mode
$3 = SImode
But...
enum machine_mode insn_mode
= insn_data[(int) CODE_FOR_cmpstrnsi].operand[0].mode;
tree len1 = c_strlen (arg1, 1);
tree len2 = c_strlen (arg2, 1);
Something is seriously broken here. insn_mode should get SImode, not VOIDmode.