[Bug target/112411] ICE: SIGSEGV with --param=min-nondebug-insn-uid=2147483647 on powerpc64le-unknown-linux-gnu
linkw at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Tue Nov 7 08:55:30 GMT 2023
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112411
Kewen Lin <linkw at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Ever confirmed|0 |1
Status|UNCONFIRMED |NEW
Last reconfirmed| |2023-11-07
CC| |linkw at gcc dot gnu.org,
| |rguenth at gcc dot gnu.org,
| |rsandifo at gcc dot gnu.org
--- Comment #2 from Kewen Lin <linkw at gcc dot gnu.org> ---
Confirmed, can be reproduced with native powerpc64 compiler.
It fails at the code:
352│ if (insn_lengths_max_uid > INSN_UID (insn))
353├───> return insn_lengths[INSN_UID (insn)];
p INSN_UID (insn)
$1 = (int &) @0x7ffff5830384: -2147483641
p insn_lengths_max_uid
$2 = 0
p insn_lengths
$3 = (int *) 0x0
The given --param=min-nondebug-insn-uid=2147483647 causes the assigned insn uid
becomes negative. At that time, insn_lengths isn't ready yet, it can workaround
with further checking insn_lengths first.
I noticed that those uid variables are of signed type, such as:
x_cur_insn_uid @ emit_status
x_cur_debug_insn_uid @ emit_status
insn_uid @ rtx_def
shouldn't they be with unsigned type instead? or is it by design?
More information about the Gcc-bugs
mailing list