ICE in change_address at emit_rtl.c

Zack Weinberg zack@codesourcery.com
Wed Nov 14 09:46:00 GMT 2001


On Fri, Nov 23, 2001 at 07:14:38PM +0000, Neil Booth wrote:
> Gabriel Dos Reis wrote:-
> 
> > Neil Booth <neil@daikokuya.demon.co.uk> writes:
> > 
> > [...]
> > 
> > | I've not been able to find a satisfactory fix; since I'm not a fan of
> > | error_mark_node-s I don't want to introduce yet more checks for them.
> > | I hate the error_mark_node stuff; it would be nice if it could go
> > | away.
> > 
> > What should be the alternative?
> 
> Generate something that is valid, even if it's not what the user
> specified.  e.g. if it's an invalid typedef, typedef it to int (or
> something more intelligent if possible) rather than error_mark_node.

FWIW I would like to see this too.

Regarding ICE suppression, I'm in favor of one or more of the
following changes:

- Disable it entirely when ENABLE_CHECKING is defined.  It would then
  be off in the mainline and on in the releases.

- Add a command line switch to disable it, as Ada does.

- Attempt to be more intelligent about when an ICE should be
  suppressed; only some errors produce malformed internal data
  structures as a side effect, and most of those would only affect
  compilation of the containing function, not the rest of the source.
  (The latter of course becomes less true as we do more
  interprocedural analysis.)

zw



More information about the Gcc mailing list