[Bug c/11555] New: ICE in verify_loop_structure, at cfgloop.c:1270

v dot haisman at sh dot cvut dot cz gcc-bugzilla@gcc.gnu.org
Thu Jul 17 00:25:00 GMT 2003


PLEASE REPLY TO gcc-bugzilla@gcc.gnu.org ONLY, *NOT* gcc-bugs@gcc.gnu.org.

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11555

           Summary: ICE in verify_loop_structure, at cfgloop.c:1270
           Product: gcc
           Version: 3.4
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: v dot haisman at sh dot cvut dot cz
                CC: gcc-bugs at gcc dot gnu dot org
 GCC build triplet: i686-pc-cygwin
  GCC host triplet: i686-pc-cygwin
GCC target triplet: i686-pc-cygwin

This code fails to compile with -O{1,2} -ftracer -funroll-loops options. When
-O{0,3} is used or either -ftracer or -funroll-loops option is removed it
compiles. Testcase has been derived from gas/expr.c.

$ gcc -v
Reading specs from /usr/local/lib/gcc-lib/i686-pc-cygwin/3.3.1/specs
Configured with: ../srcdir/configure --srcdir=/cygdrive/c/WilX/gcc33/srcdir --en
able-threads=posix --enable-languages=c,c++ --enable-nls --without-included-gett
ext --enable-version-specific-runtime-libs --enable-dwarf2 --with-arch=atholn --
with-cpu=athlon
Thread model: posix
gcc version 3.3.1 20030716 (prerelease)

$ gcc-34 -O1 -ftracer -funroll-loops -c testcase2.c
testcase2.c: In function `mri_char_constant':
testcase2.c:20: error: Edge from 16 to 8 should not be marked irreducible.
testcase2.c:20: error: Edge from 50 to 8 should not be marked irreducible.
testcase2.c:20: internal compiler error: in verify_loop_structure, at cfgloop.c:
1270
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.


----8<-----
extern char *input_line_pointer;

static void mri_char_constant (void)
{
  int i;

  for (i = (20) - 1; i >= 0; i--)
    {
      int j;

      for (j = 0; j < (1 << (1)); j++)
	{
	  if (*input_line_pointer == '\'')
	    {
	      if (input_line_pointer[1] != '\'')
		break;
	    }
	}
    }
}



More information about the Gcc-bugs mailing list