https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65289
Mikhail Maltsev <maltsevm at gmail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |maltsevm at gmail dot com --- Comment #2 from Mikhail Maltsev <maltsevm at gmail dot com> --- Reduced test case, reproduces ICE for both sets of options (-O2 -fgraphite-identity and -O2 -floop-nest-optimize): tjCompress2(srcBuf, height) { int i, *row_pointer; if (_setjmp()) for (; i < height; i++) row_pointer[i] = srcBuf; jpeg_abort_compress(); } Of course, this program now involves undefined behavior, but the error message is still the same as in the original one. Here is another example: void bar (); int foo (char *dest, int i) { _setjmp(); while (i) dest[--i] = 0; bar(); } ./test1.c: In function 'foo': ./test1.c:2:5: error: loop 2's latch is marked as part of irreducible region int foo (char *dest, int i) ^ ./test1.c:2:5: error: edge from 16 to 19 should be marked irreducible ./test1.c:2:5: error: basic block 19 should be marked irreducible ./test1.c:2:5: error: edge from 19 to 17 should be marked irreducible ./test1.c:2:5: error: basic block 20 should not be marked irreducible ./test1.c:2:5: error: edge from 20 to 25 should not be marked irreducible ./test1.c:2:5: error: basic block 25 should not be marked irreducible ./test1.c:2:5: error: edge from 25 to 23 should not be marked irreducible ./test1.c:2:5: error: basic block 23 should not be marked irreducible ./test1.c:2:5: error: edge from 23 to 24 should be marked irreducible ./test1.c:2:5: error: basic block 21 should not be marked irreducible ./test1.c:2:5: error: edge from 21 to 20 should not be marked irreducible ./test1.c:2:5: error: basic block 24 should be marked irreducible ./test1.c:2:5: error: edge from 24 to 18 should be marked irreducible ./test1.c:2:5: internal compiler error: in verify_loop_structure, at cfgloop.c:1652