OSDN Git Service

PR java/23620
authornathan <nathan@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 14 Oct 2005 08:46:55 +0000 (08:46 +0000)
committernathan <nathan@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 14 Oct 2005 08:46:55 +0000 (08:46 +0000)
* class.c (make_class): Create empty binfo here.
(set_super_info): Only create binfo if we have superclasses.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@105399 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/java/ChangeLog
gcc/java/class.c

index 549a742..33c01d7 100644 (file)
@@ -1,3 +1,10 @@
+2005-10-12  Nathan Sidwell  <nathan@codesourcery.com>
+           Wil Mahan <wmahan@gmail.com>
+
+       PR java/23620
+       * class.c (make_class): Create empty binfo here.
+       (set_super_info): Only create binfo if we have superclasses.
+
 2005-10-03  Ranjit Mathew  <rmathew@gcc.gnu.org>
 
        PR java/24127
index b9848d3..eb9ea71 100644 (file)
@@ -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)
     {