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