https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97315
Alex Coplan <acoplan at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |acoplan at gcc dot gnu.org --- Comment #1 from Alex Coplan <acoplan at gcc dot gnu.org> --- Seeing a similar ICE with the following simple C testcase: int a; int b(signed char c, int d) { return c < 0 ? 0 : c >> d; } void e(void) { for (int i = 0; i <= 0; i++) while (a) b(-(i != 1), i); } $ aarch64-elf-gcc -O2 test.c during GIMPLE pass: evrp test.c: In function 'e': test.c:8:1: internal compiler error: in choose_value, at gimple-ssa-evrp.c:282 8 | } | ^ 0x18d93f0 hybrid_folder::choose_value(tree_node*, tree_node*) /home/alecop01/toolchain/src/gcc/gcc/gimple-ssa-evrp.c:282 0x18d94e4 hybrid_folder::value_of_expr(tree_node*, gimple*) /home/alecop01/toolchain/src/gcc/gcc/gimple-ssa-evrp.c:236 0xf8e112 substitute_and_fold_engine::replace_uses_in(gimple*) /home/alecop01/toolchain/src/gcc/gcc/tree-ssa-propagate.c:871 0xf8e912 substitute_and_fold_dom_walker::before_dom_children(basic_block_def*) /home/alecop01/toolchain/src/gcc/gcc/tree-ssa-propagate.c:1141 0x18a5d5b dom_walker::walk(basic_block_def*) /home/alecop01/toolchain/src/gcc/gcc/domwalk.c:309 0xf8f885 substitute_and_fold_engine::substitute_and_fold(basic_block_def*) /home/alecop01/toolchain/src/gcc/gcc/tree-ssa-propagate.c:1283 0x18d9828 execute_early_vrp /home/alecop01/toolchain/src/gcc/gcc/gimple-ssa-evrp.c:328 0x18d9bf8 execute /home/alecop01/toolchain/src/gcc/gcc/gimple-ssa-evrp.c:375 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <https://gcc.gnu.org/bugs/> for instructions.