Commit 0ea05c0d by Tom Tromey Committed by Tom Tromey

re PR java/9695 (Inner class bug prevent GNU Classpath from compiling)

	PR java/9695:
	* class.c (maybe_layout_super_class): Always pass a WFL to
	do_resolve_class.
	* parse.y (do_resolve_class): Updated comment to explain
	parameters.

From-SVN: r63584
parent 8c108db2
2003-02-28 Tom Tromey <tromey@redhat.com>
PR java/9695:
* class.c (maybe_layout_super_class): Always pass a WFL to
do_resolve_class.
* parse.y (do_resolve_class): Updated comment to explain
parameters.
2003-02-26 Tom Tromey <tromey@redhat.com> 2003-02-26 Tom Tromey <tromey@redhat.com>
* jcf-write.c (generate_classfile): Check whether class is * jcf-write.c (generate_classfile): Check whether class is
......
...@@ -1726,8 +1726,19 @@ maybe_layout_super_class (tree super_class, tree this_class) ...@@ -1726,8 +1726,19 @@ maybe_layout_super_class (tree super_class, tree this_class)
super_class = TREE_TYPE (super_class); super_class = TREE_TYPE (super_class);
else else
{ {
/* do_resolve_class expects an EXPR_WITH_FILE_LOCATION, so
we give it one. */
tree this_wrap = NULL_TREE;
if (this_class)
{
tree this_decl = TYPE_NAME (this_class);
this_wrap = build_expr_wfl (this_class,
DECL_SOURCE_FILE (this_decl),
DECL_SOURCE_LINE (this_decl), 0);
}
super_class = do_resolve_class (NULL_TREE, /* FIXME? */ super_class = do_resolve_class (NULL_TREE, /* FIXME? */
super_class, NULL_TREE, this_class); super_class, NULL_TREE, this_wrap);
if (!super_class) if (!super_class)
return NULL_TREE; /* FIXME, NULL_TREE not checked by caller. */ return NULL_TREE; /* FIXME, NULL_TREE not checked by caller. */
super_class = TREE_TYPE (super_class); super_class = TREE_TYPE (super_class);
......
...@@ -5678,11 +5678,11 @@ resolve_class (tree enclosing, tree class_type, tree decl, tree cl) ...@@ -5678,11 +5678,11 @@ resolve_class (tree enclosing, tree class_type, tree decl, tree cl)
return resolved_type_decl; return resolved_type_decl;
} }
/* Effectively perform the resolution of class CLASS_TYPE. DECL or CL /* Effectively perform the resolution of class CLASS_TYPE. DECL or CL
are used to report error messages. Do not try to replace TYPE_NAME are used to report error messages; CL must either be NULL_TREE or a
(class_type) by a variable, since it is changed by WFL wrapping a class. Do not try to replace TYPE_NAME (class_type)
find_in_imports{_on_demand} and (but it doesn't really matter) by a variable, since it is changed by find_in_imports{_on_demand}
qualify_and_find. */ and (but it doesn't really matter) qualify_and_find. */
tree tree
do_resolve_class (tree enclosing, tree class_type, tree decl, tree cl) do_resolve_class (tree enclosing, tree class_type, tree decl, tree cl)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment