diff options
Diffstat (limited to 'gcc/java/class.c')
-rw-r--r-- | gcc/java/class.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/gcc/java/class.c b/gcc/java/class.c index b9848d3..eb9ea71 100644 --- a/gcc/java/class.c +++ b/gcc/java/class.c @@ -319,6 +319,9 @@ make_class (void) { tree type; type = make_node (RECORD_TYPE); + /* Unfortunately we must create the binfo here, so that class + loading works. */ + TYPE_BINFO (type) = make_tree_binfo (0); MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC (type); return type; @@ -468,7 +471,8 @@ set_super_info (int access_flags, tree this_class, if (super_class) total_supers++; - TYPE_BINFO (this_class) = make_tree_binfo (total_supers); + if (total_supers) + TYPE_BINFO (this_class) = make_tree_binfo (total_supers); TYPE_VFIELD (this_class) = TYPE_VFIELD (object_type_node); if (super_class) { |