[Bug tree-optimization/33166] [4.3 Regression] ICE in get_indirect_ref_operands, at tree-ssa-operands.c:1698

rguenth at gcc dot gnu dot org gcc-bugzilla@gcc.gnu.org
Fri Aug 24 13:11:00 GMT 2007



------- Comment #4 from rguenth at gcc dot gnu dot org  2007-08-24 13:11 -------
Shorter testcase, fails at -O:

static void ConvertAddr (char *saddr, void **addr)
{
  *addr = (void *) &saddr;
}
void DefineSelf (char *addr)
{
  ConvertAddr (addr, (void **) &addr);
  if (addr[0] == 127 && addr[3] == 1)
    ;
}

this is a type problem.  Before forwprop2 we have

  char * saddr;
  char D.2013;

<bb 2>:
  addr_1 = addr_7(D);
  saddr = addr_1;
  addr_10 = &saddr;
  addr_2 = addr_10;
  D.2013_3 = *addr_2;
  return;

note that

  addr_10 = &saddr;

misses a cast.  It's an assignment from char** to char*.


-- 

rguenth at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         AssignedTo|unassigned at gcc dot gnu   |rguenth at gcc dot gnu dot
                   |dot org                     |org
             Status|NEW                         |ASSIGNED
   Last reconfirmed|2007-08-23 20:59:20         |2007-08-24 13:11:02
               date|                            |


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



More information about the Gcc-bugs mailing list