https://gcc.gnu.org/bugzilla/show_bug.cgi?id=126999

            Bug ID: 126999
           Summary: [14/15/16/17 Regression] ICE at -O3 during GIMPLE
                    pass: vrp
           Product: gcc
           Version: 17.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: xxs_chy at outlook dot com
  Target Milestone: ---

Reproducer: https://godbolt.org/z/a7od9eebo
Reduced case:
#include <stdint.h>
typedef void (*fp_t_2)();
void *g12;
uint16_t g22;
_Bool f19_c11;
void f3()
{
lbl_dead2:
    goto lbl_dead2;
}
void f19()
{
    _Bool c0;
    fp_t_2 fp5;
    uint16_t v7;
    _Bool c10 = fp5 = f19;
lbl_sw1:
    if (c0) goto lbl_br5;
    if (f19_c11) goto lbl_br53;
    if (c10) __builtin_unreachable();
    return;
lbl_br5:
    c0 = 1 == g22;
    if (c0) goto lbl_sw_def26;
    if (c10) goto lbl_sw1;
lbl_bf10:
    c0 = 0 >= g22;
    c10 = g12;
    goto lbl_sw1;
lbl_sw_def26:
    fp5 = f3;
    g22 = v7;
    goto lbl_bf10;
lbl_br53:
    fp5();
    if (c10) __builtin_unreachable();
}

Dump at -O3:
during GIMPLE pass: vrp
/tmp/tmpqts7rqj9/case.c:9313:10: internal compiler error: Segmentation fault
 9313 | uint64_t f19(void) {
      |          ^~~
0x285673d internal_error(char const*, ...)
       
/data/Projects/compiler-test-env/cte-work/src/gcc/gcc/diagnostic-global-context.cc:787
0x125fd2f crash_signal
        /data/Projects/compiler-test-env/cte-work/src/gcc/gcc/toplev.cc:325
0x7c4a8e04251f ???
        ./signal/../sysdeps/unix/sysv/linux/x86_64/libc_sigaction.c:0
0x15f2b23 remove_unreachable::remove_and_update_globals()
        /data/Projects/compiler-test-env/cte-work/src/gcc/gcc/tree-vrp.cc:331
0x15f44cf remove_unreachable::remove_and_update_globals()
        /data/Projects/compiler-test-env/cte-work/src/gcc/gcc/tree-vrp.cc:315
0x15f44cf execute_ranger_vrp(function*, bool)
        /data/Projects/compiler-test-env/cte-work/src/gcc/gcc/tree-vrp.cc:1101
/data/Projects/compiler-test-env/cte-work/toolchains/gcc/x86_64-linux-gnu/libexec/gcc/x86_64-linux-gnu/17.0.0/cc1
-quiet -imultiarch x86_64-linux-gnu /tmp/tmpqts7rqj9/case.c -quiet -dumpdir
/tmp/tmpqts7rqj9/prog-x86_64-avx2-gcc-O3- -dumpbase case.c -dumpbase-ext .c
-march=x86-64 -msse -msse4.1 -msse4.2 -mavx -mavx2 -mfma -mpopcnt -mbmi2 -O3
-Wall -Wextra -Wno-unused -o /tmp/ccIuaV5y.s

Reply via email to