aboutsummaryrefslogtreecommitdiff
path: root/gcc/java/class.c
diff options
context:
space:
mode:
authorTom Tromey <tromey@redhat.com>2008-06-14 19:49:45 +0000
committerTom Tromey <tromey@gcc.gnu.org>2008-06-14 19:49:45 +0000
commit25e8b6ceb492818d78314bfccd8808556d059761 (patch)
tree1b7b78c294f2e99523b7b1c7eccf9cca010b57b6 /gcc/java/class.c
parent397fda8004eb8e8391a3fee9e4ee6098ff613be7 (diff)
downloadgcc-25e8b6ceb492818d78314bfccd8808556d059761.zip
gcc-25e8b6ceb492818d78314bfccd8808556d059761.tar.gz
gcc-25e8b6ceb492818d78314bfccd8808556d059761.tar.bz2
re PR java/36247 (Segfault with -findirect-dispatch and --jni)
PR java/36247: * class.c (build_class_ref): Initialize this_classdollar when From-SVN: r136787
Diffstat (limited to 'gcc/java/class.c')
-rw-r--r--gcc/java/class.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/gcc/java/class.c b/gcc/java/class.c
index 85e37bc..dff75ac 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);