OSDN Git Service

(finish_decl): If asmspec_tree, clear DECL_BUILT_IN for function and
authorkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 16 Apr 1994 20:38:20 +0000 (20:38 +0000)
committerkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 16 Apr 1994 20:38:20 +0000 (20:38 +0000)
DECL_RTL always.

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

gcc/c-decl.c

index 6055e3a..a7cd30e 100644 (file)
@@ -3406,8 +3406,13 @@ finish_decl (decl, init, asmspec_tree)
   int temporary = allocation_temporary_p ();
   char *asmspec = 0;
 
+  /* If a name was specified, get the string.  Then reset DECL_RTL
+     so that we will remake it with the new name.  */
   if (asmspec_tree)
-    asmspec = TREE_STRING_POINTER (asmspec_tree);
+    {
+      asmspec = TREE_STRING_POINTER (asmspec_tree);
+      DECL_RTL (decl) = 0;
+    }
 
   /* If `start_decl' didn't like having an initialization, ignore it now.  */
 
@@ -3527,6 +3532,11 @@ finish_decl (decl, init, asmspec_tree)
        }
     }
 
+  /* If this is a function and an assembler name is specified, it isn't
+     builtin any more.  */
+  if (TREE_CODE (decl) == FUNCTION_DECL && asmspec)
+    DECL_BUILT_IN (decl) = 0;
+
   /* Output the assembler code and/or RTL code for variables and functions,
      unless the type is an undefined structure or union.
      If not, it will get done when the type is completed.  */