Commit 6518c7b5 by Bryce McKinlay Committed by Alexandre Petit-Bianco

re GNATS gcj/127 (gcj dumps core on method invocation on a primitive type)

2000-05-23  Bryce McKinlay  <bryce@albatross.co.nz>

       * parse.y (patch_method_invocation): Don't try to lookup methods
       in primitive types.

(This fixes the PR gcj/127:
 http://sourceware.cygnus.com/ml/java-prs/2000-q1/msg00011.html)

From-SVN: r34347
parent ee418a77
...@@ -34,6 +34,11 @@ ...@@ -34,6 +34,11 @@
`wfl_operator', to maybe_build_primttype_type_ref. `wfl_operator', to maybe_build_primttype_type_ref.
Fixes PR gcj/235. Fixes PR gcj/235.
2000-05-23 Bryce McKinlay <bryce@albatross.co.nz>
* parse.y (patch_method_invocation): Don't try to lookup methods
in primitive types.
2000-05-02 Alexandre Petit-Bianco <apbianco@cygnus.com> 2000-05-02 Alexandre Petit-Bianco <apbianco@cygnus.com>
* parse.y (resolve_field_access): Call the appropriate <clinit> * parse.y (resolve_field_access): Call the appropriate <clinit>
......
...@@ -12090,6 +12090,16 @@ patch_method_invocation (patch, primary, where, is_static, ret_decl) ...@@ -12090,6 +12090,16 @@ patch_method_invocation (patch, primary, where, is_static, ret_decl)
type = GET_SKIP_TYPE (resolved); type = GET_SKIP_TYPE (resolved);
resolve_and_layout (type, NULL_TREE); resolve_and_layout (type, NULL_TREE);
if (JPRIMITIVE_TYPE_P (type))
{
parse_error_context
(identifier_wfl,
"Can't invoke a method on primitive type `%s'",
IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (type))));
PATCH_METHOD_RETURN_ERROR ();
}
list = lookup_method_invoke (0, identifier_wfl, type, identifier, args); list = lookup_method_invoke (0, identifier_wfl, type, identifier, args);
args = nreverse (args); args = nreverse (args);
......
...@@ -9392,6 +9392,16 @@ patch_method_invocation (patch, primary, where, is_static, ret_decl) ...@@ -9392,6 +9392,16 @@ patch_method_invocation (patch, primary, where, is_static, ret_decl)
type = GET_SKIP_TYPE (resolved); type = GET_SKIP_TYPE (resolved);
resolve_and_layout (type, NULL_TREE); resolve_and_layout (type, NULL_TREE);
if (JPRIMITIVE_TYPE_P (type))
{
parse_error_context
(identifier_wfl,
"Can't invoke a method on primitive type `%s'",
IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (type))));
PATCH_METHOD_RETURN_ERROR ();
}
list = lookup_method_invoke (0, identifier_wfl, type, identifier, args); list = lookup_method_invoke (0, identifier_wfl, type, identifier, args);
args = nreverse (args); args = nreverse (args);
......
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