https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120143
Bug ID: 120143 Summary: [16 Regression] RISC-V: ICE with -flto on undefined extern var in verify_ssa Product: gcc Version: 16.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: ewlu at rivosinc dot com Target Milestone: --- testcase: short a; extern _Bool b[][23]; short g = 6; int v[4]; int x[3]; void c(short g, int v[], int x[]) { for (;;) for (unsigned y = 0; y < 023; y++) { b[y][y] = v[y]; for (_Bool aa = 0; aa < (_Bool)g; aa = x[y]) a = a > 0; } } int main() { c(g, v, x); } command/backtrace: $ /scratch/ewlu/daily-upstream-build/build-gcv/bin/riscv64-unknown-linux-gnu-gcc -I/scratch/ewlu/ci/compiler-fuzz-ci/csmith-build/include -fsigned-char -fno-strict-aliasing -fwrapv -march=rv64gcv_zvl256b -O3 -flto red.c -o rv64gcv.out -w red.c: In function 'main': red.c:971:5: error: definition in block 43 follows the use 971 | int main() { | ^ for SSA_NAME: .MEM_1316 in statement: # VUSE <.MEM_1316> vect__272.57_1344 = MEM <vector(8) unsigned int> [(unsigned int *)vectp_arr_15.55_1346]; during GIMPLE pass: vect red.c:971:5: internal compiler error: verify_ssa failed 0x2fdd496 internal_error(char const*, ...) ../../../gcc/gcc/diagnostic-global-context.cc:517 0x158311f verify_ssa(bool, bool) ../../../gcc/gcc/tree-ssa.cc:1203 0x11be865 execute_function_todo ../../../gcc/gcc/passes.cc:2108 0x11becfe execute_todo ../../../gcc/gcc/passes.cc:2155 Please submit a full bug report, with preprocessed source (by using -freport-bug). Please include the complete backtrace with any bug report. See <https://gcc.gnu.org/bugs/> for instructions. lto-wrapper: fatal error: /scratch/ewlu/daily-upstream-build/build-gcv/bin/riscv64-unknown-linux-gnu-gcc returned 1 exit status compilation terminated. /scratch/ewlu/daily-upstream-build/build-gcv/lib/gcc/riscv64-unknown-linux-gnu/16.0.0/../../../../riscv64-unknown-linux-gnu/bin/ld: error: lto-wrapper failed We should be seeing an "undefined reference to `b'" error instead of an ice. Problem is caused somewhere along the flto codepath. Not sure if it's an lto bug or a RISC-V bug godbolt: https://godbolt.org/z/Eqo4q5YTP found via fuzzer