https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103842
Bug ID: 103842 Summary: [12 regression] ICE on ilmbase-2.5.7: during RTL pass: expand Product: gcc Version: 12.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: slyfox at gcc dot gnu.org Target Milestone: --- Target: x86_64-unknown-linux-gnu Noticed new ICE on this week's gcc snapshot on ilmbase-2.5.7. Here is minimized source: void abs(float *); struct Matrix33 { float x[3][3]; float *operator[](int i) { return x[i]; } Matrix33(); Matrix33(float f, float g) { x[1][0] = x[1][1] = x[1][2] = f; x[2][0] = g; } void equalWithAbsError(); Matrix33 inverse() { Matrix33 s(x[1][2] - x[1][2], x[1][1] - x[1][1]); float r = s[2][0]; if (r) for (int i = 0; i < 3; ++i) for (int j = 0; j < 3; ++j) s[i][j] /= r; for (int i = 0;;) { float *__trans_tmp_2 = s[i]; abs(__trans_tmp_2); } } }; void __assert_fail() { Matrix33 m, inv1 = m.inverse(), ident1 = inv1; ident1.equalWithAbsError(); } $ g++-12.0.0 -O3 -c bug.cpp.cpp during RTL pass: expand bug.cpp.cpp: In function 'void __assert_fail()': bug.cpp.cpp:27:5: internal compiler error: Segmentation fault 27 | } | ^ 0x21196c6 internal_error(char const*, ...) ???:0 $ g++-12.0.0 -v Using built-in specs. COLLECT_GCC=/nix/store/hw64v14l9lzircg596kmj1bjiy76wcih-gcc-12.0.0/bin/g++ COLLECT_LTO_WRAPPER=/nix/store/hw64v14l9lzircg596kmj1bjiy76wcih-gcc-12.0.0/libexec/gcc/x86_64-unknown-linux-gnu/12.0.0/lto-wrapper Target: x86_64-unknown-linux-gnu Configured with: Thread model: posix Supported LTO compression algorithms: zlib gcc version 12.0.0 20211226 (experimental) (GCC) Also attaching the unminimized preprocessed file in case it introduced unrelated uninitialized values as `bug.cpp.cpp.orig`.