[Bug middle-end/65289] [5.0 regression] ICE when compiling libjpegturbo with -floop-nest-optimize

maltsevm at gmail dot com gcc-bugzilla@gcc.gnu.org
Tue Mar 3 08:21:00 GMT 2015


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



More information about the Gcc-bugs mailing list