aboutsummaryrefslogtreecommitdiff
path: root/gcc/java/parse.c
diff options
context:
space:
mode:
authorTom Tromey <tromey@cygnus.com>2000-06-25 17:25:31 +0000
committerTom Tromey <tromey@gcc.gnu.org>2000-06-25 17:25:31 +0000
commitf1ff439a50500c09c7f8016ca00dfe0bfd1109a2 (patch)
treed63d1f1e6cd319b39df884faaac61ea0f7642909 /gcc/java/parse.c
parent6d77b53e7a196f01fc03bb481a7cb574213a4a6d (diff)
downloadgcc-f1ff439a50500c09c7f8016ca00dfe0bfd1109a2.zip
gcc-f1ff439a50500c09c7f8016ca00dfe0bfd1109a2.tar.gz
gcc-f1ff439a50500c09c7f8016ca00dfe0bfd1109a2.tar.bz2
re GNATS gcj/260 ("Klass.class" expression should cause Klass to be initialized)
* parse.y (patch_incomplete_class_ref): Initialize the returned class. For PR gcj/260. From-SVN: r34695
Diffstat (limited to 'gcc/java/parse.c')
-rw-r--r--gcc/java/parse.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/gcc/java/parse.c b/gcc/java/parse.c
index 415d877..d6ece50 100644
--- a/gcc/java/parse.c
+++ b/gcc/java/parse.c
@@ -211,7 +211,7 @@ static tree lookup_method_invoke PARAMS ((int, tree, tree, tree, tree));
static tree register_incomplete_type PARAMS ((int, tree, tree, tree));
static tree obtain_incomplete_type PARAMS ((tree));
static tree java_complete_lhs PARAMS ((tree));
-tree java_complete_tree PARAMS ((tree));
+static tree java_complete_tree PARAMS ((tree));
static tree maybe_generate_pre_expand_clinit PARAMS ((tree));
static int maybe_yank_clinit PARAMS ((tree));
static void java_complete_expand_method PARAMS ((tree));
@@ -13280,7 +13280,7 @@ breakdown_qualified (left, right, source)
local variable decls if present.
Same as java_complete_lhs, but does resolve static finals to values. */
-tree
+static tree
java_complete_tree (node)
tree node;
{
@@ -15690,7 +15690,10 @@ patch_incomplete_class_ref (node)
return error_mark_node;
if (!flag_emit_class_files || JPRIMITIVE_TYPE_P (ref_type))
- return 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 we're emitting class files and we have to deal with non
primitive types, we invoke (and consider generating) the