------- Additional Comments From pinskia at gcc dot gnu dot org  2004-09-28 03:30 
-------
Can you try this patch (I am testing it right now on powerpc-darwin for the NeXT 
runtime), the code I 
am removing dates back before EGCS:
Index: objc-act.c
===============================================================
====
RCS file: /cvs/gcc/gcc/gcc/objc/objc-act.c,v
retrieving revision 1.248
diff -u -p -r1.248 objc-act.c
--- objc-act.c  24 Sep 2004 23:15:33 -0000      1.248
+++ objc-act.c  28 Sep 2004 03:29:33 -0000
@@ -3754,9 +3754,6 @@ static void
 generate_method_descriptors (tree protocol)
 {
   tree initlist, chain, method_list_template;
-  tree variable_length_type
-    = xref_tag (RECORD_TYPE,
-               get_identifier (UTAG_METHOD_PROTOTYPE_LIST));
   int size;
 
   if (!objc_method_prototype_template)
@@ -3779,7 +3776,6 @@ generate_method_descriptors (tree protoc
        = generate_descriptor_table (method_list_template,
                                     "_OBJC_PROTOCOL_CLASS_METHODS",
                                     size, initlist, protocol);
-      TREE_TYPE (UOBJC_CLASS_METHODS_decl) = variable_length_type;
     }
   else
     UOBJC_CLASS_METHODS_decl = 0;
@@ -3800,7 +3796,6 @@ generate_method_descriptors (tree protoc
        = generate_descriptor_table (method_list_template,
                                     "_OBJC_PROTOCOL_INSTANCE_METHODS",
                                     size, initlist, protocol);
-      TREE_TYPE (UOBJC_INSTANCE_METHODS_decl) = variable_length_type;
     }
   else
     UOBJC_INSTANCE_METHODS_decl = 0;
@@ -4484,8 +4479,6 @@ static void
 generate_ivar_lists (void)
 {
   tree initlist, ivar_list_template, chain;
-  tree variable_length_type
-    = xref_tag (RECORD_TYPE, get_identifier (UTAG_IVAR_LIST));
   int size;
 
   generating_instance_variables = 1;
@@ -4507,7 +4500,6 @@ generate_ivar_lists (void)
       UOBJC_CLASS_VARIABLES_decl
        = generate_ivars_list (ivar_list_template, "_OBJC_CLASS_VARIABLES",
                               size, initlist);
-      TREE_TYPE (UOBJC_CLASS_VARIABLES_decl) = variable_length_type;
     }
   else
     UOBJC_CLASS_VARIABLES_decl = 0;
@@ -4522,7 +4514,6 @@ generate_ivar_lists (void)
       UOBJC_INSTANCE_VARIABLES_decl
        = generate_ivars_list (ivar_list_template, "_OBJC_INSTANCE_VARIABLES",
                               size, initlist);
-      TREE_TYPE (UOBJC_INSTANCE_VARIABLES_decl) = variable_length_type;
     }
   else
     UOBJC_INSTANCE_VARIABLES_decl = 0;
@@ -4654,8 +4645,6 @@ static void
 generate_dispatch_tables (void)
 {
   tree initlist, chain, method_list_template;
-  tree variable_length_type
-    = xref_tag (RECORD_TYPE, get_identifier (UTAG_METHOD_LIST));
   int size;
 
   if (!objc_method_template)
@@ -4678,7 +4667,6 @@ generate_dispatch_tables (void)
                                    ? "_OBJC_CLASS_METHODS"
                                    : "_OBJC_CATEGORY_CLASS_METHODS"),
                                   size, initlist);
-      TREE_TYPE (UOBJC_CLASS_METHODS_decl) = variable_length_type;
     }
   else
     UOBJC_CLASS_METHODS_decl = 0;
@@ -4704,7 +4692,6 @@ generate_dispatch_tables (void)
          = generate_dispatch_table (method_list_template,
                                     "_OBJC_CATEGORY_INSTANCE_METHODS",
                                     size, initlist);
-      TREE_TYPE (UOBJC_INSTANCE_METHODS_decl) = variable_length_type;
     }
   else
     UOBJC_INSTANCE_METHODS_decl = 0;


-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
          Component|regression                  |objc


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=16546

Reply via email to