Seen on Ubuntu 9.10.

reg...@john-home:~/volatile/bugs/tmp253$ current-gcc -O2 small.c
small.c: In function ‘bar’:
small.c:16:1: error: definition in block 7 does not dominate use in block 2
for SSA_NAME: l_23_17 in statement:
l_23_2 = PHI <l_23_17(7), l_23_17(2)>
PHI argument
l_23_17
for PHI node
l_23_2 = PHI <l_23_17(7), l_23_17(2)>
small.c:16:1: internal compiler error: verify_ssa failed
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.

reg...@john-home:~/volatile/bugs/tmp253$ current-gcc -v

Using built-in specs.
COLLECT_GCC=current-gcc
COLLECT_LTO_WRAPPER=/home/regehr/z/tmp/gcc-r155838-install/libexec/gcc/i686-pc-linux-gnu/4.5.0/lto-wrapper
Target: i686-pc-linux-gnu
Configured with: ../configure --with-libelf=/usr/local --enable-lto
--prefix=/home/regehr/z/tmp/gcc-r155838-install --program-prefix=r155838-
--enable-languages=c,c++
Thread model: posix
gcc version 4.5.0 20100112 (experimental) (GCC) 

reg...@john-home:~/volatile/bugs/tmp253$ cat small.c

static signed char
foo (signed char si1, unsigned char si2)
{
  return (si1 ^ si2) & (-si2 ^ si2) ? : si1 - si2;
}

struct S0
{
};

unsigned char g_21;

struct S0 g_34;

void
bar (unsigned char p_20)
{
  unsigned char *l_22 = &g_21;
  unsigned char l_23 = 0;
  struct S0 *l = &g_34;
  goto lbl_42;
  for (; l_23; l_23 = foo (l_23, 1))
    {
      for (p_20 = 0; 0; p_20 = foo (p_20, 1))
      lbl_42:;
      (l == &g_34) ? 0 : "";
    lbl_85:*l_22 = p_20;
    }
  goto lbl_85;
}


-- 
           Summary: ice: verify_ssa failed
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: regehr at cs dot utah dot edu
 GCC build triplet: i686-pc-linux-gnu
  GCC host triplet: i686-pc-linux-gnu
GCC target triplet: i686-pc-linux-gnu


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

Reply via email to