This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: ICE in change_address at emit_rtl.c
Zack Weinberg wrote:-
> Careful! "confused by earlier errors, bailing out" means that there
> _was_ an ICE but we pretended it didn't happen because there was an
> earlier error. In this case, the undeclared strcmp and exit are
> unlikely to have corrupted data structures down the line and provoked
> the ICE, which means there's still a real bug here. Put declarations
> of strcmp and exit just above main() in that test file, and I bet you
> the bug comes back.
I've traced many of these "confused ... bailing out" in the C front
end; they are usually in grokdeclarator. Something gets set to NULL
and then derefenced (caused by an unexpected type of error_mark_node
IIRC).
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.
Neil.