This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Re: ICE with current mainline gcc
- To: Ulrich Drepper <drepper at cygnus dot com>
- Subject: Re: ICE with current mainline gcc
- From: Richard Henderson <rth at cygnus dot com>
- Date: Tue, 26 Sep 2000 13:45:43 -0700
- Cc: gcc-bugs at gcc dot gnu dot org, mark at codesourcery dot com
- References: <m3aecwj6yl.fsf@otr.mynet.cygnus.com>
On Mon, Sep 25, 2000 at 06:08:18PM -0700, Ulrich Drepper wrote:
> With the current mainline gcc as of 2000-09-26T18:00-0700 I'll get an
> ICE for the file at
>
> http://www.cygnus.com/~drepper/dcigettext.i.gz
Here's a "reduced" test case. It appears to be the expansion of
stpcpy (mempcpy (stpcpy (stpcpy (xdomainname, categoryname), "/"),
domainname, domainname_len),
".mo");
Beware. This expands to over 180k of text, all one big
monsterous expression. It does compress well though. ;-)
It appears to be a bad interaction between the new functions
as trees switch table code and the alternate insn chains of
a call_placeholder. I.e. the nesting around a call isn't correct,
and a label wound up inside one of the chains that was discarded.
I think it is clear that fold-const.c should be taught to recognize
when __builtin_constant_p is true so that we can prune some of these
expressions immediately. Recognizing when it will be false is harder,
since global constant propogation should be done first.
r~
zz.c.gz