c/9163: [3.3/3.4 regression] ICE in genrtl_compound_stmt at c-semantics.c:776 with c99 mode

Eric Botcazou ebotcazou@libertysurf.fr
Mon Jan 13 05:17:00 GMT 2003


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



More information about the Gcc-bugs mailing list