This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/21545] New: [4.1 regression] gcc.c-torture/execute/20031215-1.c ICEs
- From: "rguenth at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 13 May 2005 10:08:12 -0000
- Subject: [Bug tree-optimization/21545] New: [4.1 regression] gcc.c-torture/execute/20031215-1.c ICEs
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
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