[Bug rtl-optimization/55158] ICE: [4.8 Regreesion] [IA64] segv in schedule_region
gary at intrepid dot com
gcc-bugzilla@gcc.gnu.org
Thu Nov 1 00:16:00 GMT 2012
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55158
--- Comment #1 from Gary Funck <gary at intrepid dot com> 2012-11-01 00:15:54 UTC ---
Some additional debugging information.
In sched_rgn_init(), the bb_state array is initialized.
3049 {
3050 bb_state_array = (char *) xmalloc (last_basic_block *
dfa_state_size);
3051 bb_state = XNEWVEC (state_t, last_basic_block);
3052 for (i = 0; i < last_basic_block; i++)
3053 {
3054 bb_state[i] = (state_t) (bb_state_array + i *
dfa_state_size);
3055
3056 state_reset (bb_state[i]);
3057 }
3058 }
For the given test case.
(gdb) p last_basic_block
$3 = 23
Yet, it is the access of bb_state[23] that leads to the segfault.
The last basic block is 23, and the array bb_state[] is initialized only for
entries 0..22. Perhaps the number entries allocated should be
(last_basic_block + 1) with the initialization loop adjusted accordingly?
More information about the Gcc-bugs
mailing list