OSDN Git Service

* varasm.c (function_section): Delete flag_function_sections support.
authordje <dje@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 16 May 1996 22:28:47 +0000 (22:28 +0000)
committerdje <dje@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 16 May 1996 22:28:47 +0000 (22:28 +0000)
(assemble_start_function): Put it here.  Use UNIQUE_SECTION if defined.

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

gcc/varasm.c

index 09ab0d6..11bab79 100644 (file)
@@ -352,29 +352,6 @@ void
 function_section (decl)
      tree decl;
 {
-
-#ifdef ASM_OUTPUT_SECTION_NAME
-  /* If we are placing functions into their own sections, and this
-     function doesn't already have a section specified, set it now.  */
-  if (flag_function_sections
-      && decl != NULL_TREE
-      && DECL_SECTION_NAME (decl) == NULL_TREE)
-    {
-      int len;
-      char *string;
-
-      len = IDENTIFIER_LENGTH (DECL_ASSEMBLER_NAME (decl)) + 1;
-      string = alloca (len);
-      strcpy (string, IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (decl)));
-
-      /* Strip off any encoding in fnname.  */
-      STRIP_NAME_ENCODING (string, string);
-
-      /* Set DECL_SECTION_NAME.  */
-      DECL_SECTION_NAME (decl) = build_string (len, string);
-    }
-#endif
-
   if (decl != NULL_TREE
       && DECL_SECTION_NAME (decl) != NULL_TREE)
     named_section (decl, (char *) 0);
@@ -916,6 +893,23 @@ assemble_start_function (decl, fnname)
 
   output_constant_pool (fnname, decl);
 
+#ifdef ASM_OUTPUT_SECTION_NAME
+  /* If the function is to be put in its own section and it's not in a section
+     already, indicate so.  */
+  if (flag_function_sections
+      && DECL_SECTION_NAME (decl) == NULL_TREE)
+    {
+#ifdef UNIQUE_SECTION
+      DECL_SECTION_NAME(decl) = UNIQUE_SECTION (decl);
+#else
+      char *name = IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (decl));
+      /* Strip off any encoding in name.  */
+      STRIP_NAME_ENCODING (name, name);
+      DECL_SECTION_NAME (decl) = build_string (strlen (name), name);
+#endif
+    }
+#endif
+
   function_section (decl);
 
   /* Tell assembler to move to target machine's alignment for functions.  */