This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Re: c/9163: [3.3/3.4 regression] ICE in genrtl_compound_stmt at c-semantics.c:776 with c99 mode
- From: Eric Botcazou <ebotcazou at libertysurf dot fr>
- To: "Christian Ehrhardt" <ehrhardt at mathematik dot uni-ulm dot de>
- Cc: bangerth at dealii dot org,gcc-bugs at gcc dot gnu dot org,gcc-prs at gcc dot gnu dot org,nobody at gcc dot gnu dot org,gcc-gnats at gcc dot gnu dot org
- Date: Tue, 7 Jan 2003 12:41:17 +0100
- Subject: Re: c/9163: [3.3/3.4 regression] ICE in genrtl_compound_stmt at c-semantics.c:776 with c99 mode
- References: <20030107011810.311.qmail@sources.redhat.com> <20030107100932.10240.qmail@thales.mathematik.uni-ulm.de>
On Tuesday 07 January 2003 11:09, Christian Ehrhardt wrote:
> > Confirmed. I could not reproduce this with a 3.2.2 from
> > 20021213, though. Which version did you use, Christian?
>
> 20021218 ICEs, i.e. the bug was introduced between 20021213 and 20021218
> into the 3.2 branch. Here's the output of gcc-3.2.2 on sparc:
I'm very skeptical, because the only change between 20021213 and 20021218 was:
2002-12-17 Jakub Jelinek <jakub@redhat.com>
PR opt/8794
* combine.c (force_to_mode) [MINUS]: Only replace with (not Y) if all
bits in fuller_mask (not just mask) are set in C.
which certainly can't be the culprit (the bug occurs earlier, during RTL
generation).
The ICE is triggered by:
#ifdef ENABLE_CHECKING
/* Make sure that we've pushed and popped the same number of levels. */
if (!COMPOUND_STMT_NO_SCOPE (t) && n != current_nesting_level ())
abort ();
#endif
that is, the parse error is confusing the regular handling of nested scopes.
So I think that the problem has been there for a long time, and that
Wolfgang's 20021213 version was configured with --disable-checking.
--
Eric Botcazou