parse.y (patch_method_invocation): NULLify this_arg when already inserted.
2000-10-25 Alexandre Petit-Bianco <apbianco@cygnus.com> * parse.y (patch_method_invocation): NULLify this_arg when already inserted. (maybe_use_access_method): Handle call to methods unrelated to the current class. Fixed comment. Fixes gcj/361. (http://sources.redhat.com/ml/java-prs/2000-q4/msg00072.html http://gcc.gnu.org/ml/gcc-patches/2000-10/msg00993.html) From-SVN: r37139
This commit is contained in:
parent
661a98d17a
commit
2cb3951d32
|
@ -10,6 +10,14 @@
|
|||
* Makefile.in: Delete.
|
||||
* config-lang.in: Delete outputs= line.
|
||||
|
||||
2000-10-25 Alexandre Petit-Bianco <apbianco@cygnus.com>
|
||||
|
||||
* parse.y (patch_method_invocation): NULLify this_arg when already
|
||||
inserted.
|
||||
(maybe_use_access_method): Handle call to methods unrelated to the
|
||||
current class. Fixed comment.
|
||||
Fixes gcj/361.
|
||||
|
||||
2000-10-24 Tom Tromey <tromey@cygnus.com>
|
||||
|
||||
* lex.c (java_new_lexer): Initialize new fields. Work around
|
||||
|
|
|
@ -9930,7 +9930,10 @@ patch_method_invocation (patch, primary, where, is_static, ret_decl)
|
|||
argument list. In the meantime, the selected function
|
||||
might have be replaced by a generated stub. */
|
||||
if (maybe_use_access_method (is_super_init, &list, &this_arg))
|
||||
args = tree_cons (NULL_TREE, this_arg, args);
|
||||
{
|
||||
args = tree_cons (NULL_TREE, this_arg, args);
|
||||
this_arg = NULL_TREE; /* So it doesn't get chained twice */
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -10086,9 +10089,10 @@ maybe_use_access_method (is_super_init, mdecl, this_arg)
|
|||
|
||||
/* If we're calling a method found in an enclosing class, generate
|
||||
what it takes to retrieve the right this. Don't do that if we're
|
||||
invoking a static method. */
|
||||
invoking a static method. Note that if MD's type is unrelated to
|
||||
CURRENT_CLASS, then the current this can be used. */
|
||||
|
||||
if (non_static_context)
|
||||
if (non_static_context && DECL_CONTEXT (md) != object_type_node)
|
||||
{
|
||||
ctx = TREE_TYPE (DECL_CONTEXT (TYPE_NAME (current_class)));
|
||||
if (inherits_from_p (ctx, DECL_CONTEXT (md)))
|
||||
|
|
Loading…
Reference in New Issue