RFC - PR java/8608: ICE if WFL not yet set in check_init()

Per Bothner per@bothner.com
Thu Feb 10 02:42:00 GMT 2005

Ranjit Mathew wrote:
>   The ICE in PR java/8608 happens because WFL does
> not get set before parse_error_context() and thence
> issue_warning_error_from_context() is called from
> check_init().

The preferred fix is to is to remove parse_error_context,
and just the functions in diagnostic.c.  These make use
of input_location - but note that in init-check.c only
when input_location is set, so we'd get the same line numbers
as with using parse_error_context.

However, we'd lose column numbers in the short term,
even with USE_MAPPED_LOCATION - but that's easily fixable.

> The patch does not handle USE_MAPPED_LOCATION as
> I am not familiar with it.

You're a smart boy - you can figure it out.
The main thing to note that if USE_MAPPED_LOCATION
build_expr_wfl that a source_location, so the code
   build_expr_wfl (NULL_TREE, DECL_SOURCE_LOCATION (exp)

But since since we want to get rid of both build_expr_wfl
and parse_error_context, the better fix for USE_MAPPED_LOCATION
is plain:

   error ("Variable %qD may not have been initialized", exp);

If we're willing to temporarily give up line numbers,
we can use that for the non-USE_MAPPED_LOCATION as well.
	--Per Bothner
per@bothner.com   http://per.bothner.com/

More information about the Java-patches mailing list