Commit 12e248d6 by Alexandre Petit-Bianco Committed by Alexandre Petit-Bianco

re PR java/2605 (gcj crashes on .java file containing byte.class.getClass())

2001-06-01  Alexandre Petit-Bianco  <apbianco@redhat.com>

        * parse.y (type_literals:): Use `build_incomplete_class_ref' with
        builtin type.
        (patch_incomplete_class_ref): Build the class ref, build the class
        init if necessary, complete the tree.
        Fixes PR java/2605

(http://gcc.gnu.org/ml/gcc-patches/2001-06/msg00044.html )

From-SVN: r42807
parent a49bedaa
2001-06-01 Alexandre Petit-Bianco <apbianco@redhat.com>
* parse.y (type_literals:): Use `build_incomplete_class_ref' with
builtin type.
(patch_incomplete_class_ref): Build the class ref, build the class
init if necessary, complete the tree.
Fixes PR java/2605
2001-05-31 Alexandre Petit-Bianco <apbianco@redhat.com>
* parse.y (lookup_field_wrapper): Test `name' code.
......
......@@ -1954,9 +1954,12 @@ type_literals:
| array_type DOT_TK CLASS_TK
{ $$ = build_incomplete_class_ref ($2.location, $1); }
| primitive_type DOT_TK CLASS_TK
{ $$ = build_class_ref ($1); }
{ $$ = build_incomplete_class_ref ($2.location, $1); }
| VOID_TK DOT_TK CLASS_TK
{ $$ = build_class_ref (void_type_node); }
{
$$ = build_incomplete_class_ref ($2.location,
void_type_node);
}
;
class_instance_creation_expression:
......@@ -13773,8 +13776,11 @@ patch_incomplete_class_ref (node)
if (!flag_emit_class_files || JPRIMITIVE_TYPE_P (ref_type))
{
tree dot = build_class_ref (ref_type);
/* A class referenced by `foo.class' is initialized. */
return build_class_init (ref_type, build_class_ref (ref_type));
if (!flag_emit_class_files)
dot = build_class_init (ref_type, dot);
return java_complete_tree (dot);
}
/* If we're emitting class files and we have to deal with non
......
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