*** empty log message ***
authorRichard Stallman <rms@gnu.org>
Sat, 15 Feb 1992 20:26:02 +0000 (20:26 +0000)
committerRichard Stallman <rms@gnu.org>
Sat, 15 Feb 1992 20:26:02 +0000 (20:26 +0000)
From-SVN: r326

gcc/objc/objc-act.c

index dcc269dc2e419dcf9fbd6180bd123f5521b6a20f..486459234999a080f9868736f7e7144b4ca8c10d 100644 (file)
@@ -1034,7 +1034,7 @@ build_module_descriptor ()
     return buf;
   }
 #else /* NEXT_OBJC_RUNTIME */
-  return "__objcInit";
+  return 0;
 #endif /* NEXT_OBJC_RUNTIME */
 }
 
@@ -4998,7 +4998,8 @@ finish_objc ()
       /* Arrange for Objc data structures to be initialized at run time.  */
 
       char *init_name = build_module_descriptor ();
-      assemble_constructor (init_name);
+      if (init_name)
+       assemble_constructor (init_name);
     }
 
   /* dump the string table last */
@@ -5016,14 +5017,15 @@ finish_objc ()
   for (chain = cls_ref_chain; chain; chain = TREE_CHAIN (chain))
     {
       tree decl;
+
 #if 0 /* Grossly unportable.  */
       sprintf (utlbuf, ".reference .objc_class_name_%s",
               IDENTIFIER_POINTER (TREE_VALUE (chain)));
       assemble_asm (my_build_string (strlen (utlbuf) + 1, utlbuf));
-#endif
+#else
       sprintf (utlbuf, ".objc_class_name_%s",
               IDENTIFIER_POINTER (TREE_VALUE (chain)));
-      assemble_global (utlbuf);
+#endif
       /* Make a decl for this name, so we can use its address in a tree.  */
       decl = build_decl (VAR_DECL, get_identifier (utlbuf), char_type_node);
       TREE_EXTERNAL (decl) = 1;
@@ -5032,6 +5034,9 @@ finish_objc ()
       pushdecl (decl);
       rest_of_decl_compilation (decl, 0, 0, 0);
 
+      /* Make following constant read-only (why not)?  */
+      text_section ();
+
       /* Output a constant to reference this address.  */
       output_constant (build1 (ADDR_EXPR, string_type_node, decl),
                       int_size_in_bytes (string_type_node));
@@ -5044,8 +5049,9 @@ finish_objc ()
 
       if (TREE_CODE (impent->imp_context) == IMPLEMENTATION_TYPE)
        {
-#if 0 /* Grossly unportable.  People should know better that to
-        assume such things about assembler syntax!  */
+#if 0 /* Grossly unportable.
+                           People should know better than to assume
+                           such things about assembler syntax!  */
          sprintf (utlbuf, ".objc_class_name_%s=0",
                   IDENTIFIER_POINTER (CLASS_NAME (impent->imp_context)));
          assemble_asm (my_build_string (strlen (utlbuf) + 1, utlbuf));