This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug tree-optimization/21545] New: [4.1 regression] gcc.c-torture/execute/20031215-1.c ICEs


We fail in verify_ssa because

/net/pherkad/scratch/rguenth/gcc/gcc/testsuite/gcc.c-torture/execute/20031215-1.c:11:
error: Statement makes a memory store, but has no V_MAY_DEFS nor V_MUST_DEFS
#   VUSE <ao_1>;
ao.ch[2] = 0;
/net/pherkad/scratch/rguenth/gcc/gcc/testsuite/gcc.c-torture/execute/20031215-1.c:11:
internal compiler error: verify_ssa failed.

which is because we strip const qualifiers from lvalues in
tree_ssa_useless_type_conversion which finally happens during
46.store_copyprop:

test1 ()
{
  char * D.1575;
  char * D.1574;
  long unsigned int D.1573;
  char D.1572;
  int D.1571;

<bb 0>:
  #   VUSE <ao_1>;
  D.1571_2 = ao.l;
  #   VUSE <ao_1>;
  D.1572_3 = ao.ch[2];
  if (D.1572_3 != 0) goto <L0>; else goto <L1>;

<L0>:;
  D.1573_5 = 2;
  D.1574_6 = 2B;
  D.1575_7 = &ao.ch[2];
  #   TMT.0_9 = V_MAY_DEF <TMT.0_8>;
  *D.1575_7 = 0;

<L1>:;
  return;

}

look how the cast is gone, before (44.phiopt2) we had:

<L0>:;
  D.1573_5 = (long unsigned int) D.1571_2;
  D.1574_6 = (char *) D.1573_5;
  D.1575_7 = D.1574_6 + &ao.ch[0];
  #   TMT.0_9 = V_MAY_DEF <TMT.0_8>;
  *D.1575_7 = 0;

48.alias5 will now happily remove the V_MAY_DEF:

<L0>:;
  D.1573_5 = 2;
  D.1574_6 = 2B;
  D.1575_7 = &ao.ch[2];
  #   VUSE <ao_1>;
  *D.1575_7 = 0;


No idea how to fix this.

-- 
           Summary: [4.1 regression] gcc.c-torture/execute/20031215-1.c ICEs
           Product: gcc
           Version: 4.1.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: tree-optimization
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: rguenth at gcc dot gnu dot org
                CC: gcc-bugs at gcc dot gnu dot org


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]