This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/19241] [4.0 Regression] ICE in make_decl_rtl with inliner
- From: "steven at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 12 Jan 2005 11:51:42 -0000
- Subject: [Bug tree-optimization/19241] [4.0 Regression] ICE in make_decl_rtl with inliner
- References: <20050103134043.19241.larsbj@gullik.net>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Additional Comments From steven at gcc dot gnu dot org 2005-01-12 11:51 -------
This is the .generic dump:
void Iterator::IsEnd() const (this)
{
struct Iterator D.1926;
end (&D.1926, 0B) [return slot addr];
compare (this, &D.1926);
}
Iterator::Iterator() (this)
{
IsEnd (this);
}
Iterator Map::end() const (this)
{
struct Iterator & D.1937;
D.1937 = <retval>;
__comp_ctor (D.1937);
return <retval>;
}
void Foo() ()
{
struct Iterator D.1941;
{
struct Map f;
end (&D.1941, &f) [return slot addr];
}
}
In the gimple dump we suddenly have 9 compare calls, so that the .cfg dump
looks like this:
# BLOCK 0
# PRED: ENTRY (fallthru)
D.1937 = <retval>;
this = D.1937;
this = this;
D.1951 = &D.1952;
this = D.1951;
this = this;
D.1959 = &D.1960;
this = D.1959;
this = this;
D.1967 = &D.1968;
this = D.1967;
this = this;
D.1975 = &D.1976;
this = D.1975;
this = this;
D.1983 = &D.1984;
this = D.1983;
this = this;
D.1991 = &D.1992;
this = D.1991;
this = this;
D.1999 = &D.2000;
this = D.1999;
this = this;
D.2007 = &D.2008;
this = D.2007;
this = this;
end (&D.2013, 0B) [return slot addr];
compare (this, &D.2013);
compare (this, &D.2005);
compare (this, &D.1997);
compare (this, &D.1989);
compare (this, &D.1981);
compare (this, &D.1973);
compare (this, &D.1965);
compare (this, &D.1957);
compare (this, &D.1949);
return <retval>;
# SUCC: EXIT
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19241