summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>2008-06-14 19:49:45 +0000
committertromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>2008-06-14 19:49:45 +0000
commit9b4b2914d66c062411ddeec228d9419333429fd1 (patch)
tree1b7b78c294f2e99523b7b1c7eccf9cca010b57b6
parent10e9fb7bcb9cafacd6fd9603050a6d732809d85a (diff)
downloadgcc-9b4b2914d66c062411ddeec228d9419333429fd1.tar.gz
PR java/36247:
* class.c (build_class_ref): Initialize this_classdollar when git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@136787 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/java/ChangeLog6
-rw-r--r--gcc/java/class.c8
2 files changed, 13 insertions, 1 deletions
diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog
index 144e25d4c37..943299d5318 100644
--- a/gcc/java/ChangeLog
+++ b/gcc/java/ChangeLog
@@ -1,3 +1,9 @@
+2008-06-14 Tom Tromey <tromey@redhat.com>
+
+ PR java/36247:
+ * class.c (build_class_ref): Initialize this_classdollar when
+ needed.
+
2008-05-23 Andrew Haley <aph@redhat.com>
* jcf-parse.c (give_name_to_class): Call find_sourcefile to find full
diff --git a/gcc/java/class.c b/gcc/java/class.c
index 85e37bc468b..dff75ac9e43 100644
--- a/gcc/java/class.c
+++ b/gcc/java/class.c
@@ -1142,7 +1142,13 @@ build_class_ref (tree type)
return build_indirect_class_ref (type);
if (type == output_class && flag_indirect_classes)
- return this_classdollar;
+ {
+ /* This can be NULL if we see a JNI stub before we see any
+ other method. */
+ if (! this_classdollar)
+ this_classdollar = build_classdollar_field (output_class);
+ return this_classdollar;
+ }
if (TREE_CODE (type) == RECORD_TYPE)
return build_static_class_ref (type);