aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1994-04-16 16:38:20 -0400
committerRichard Kenner <kenner@gcc.gnu.org>1994-04-16 16:38:20 -0400
commit3c4afaa5f86313361f27d659e0af2445224c3e0d (patch)
treea69431ee67625d59cbb376722ae566801dfb6d55 /gcc
parenta28e3c7f21098041386f8c52962ac75781849d95 (diff)
downloadgcc-3c4afaa5f86313361f27d659e0af2445224c3e0d.zip
gcc-3c4afaa5f86313361f27d659e0af2445224c3e0d.tar.gz
gcc-3c4afaa5f86313361f27d659e0af2445224c3e0d.tar.bz2
(finish_decl): If asmspec_tree, clear DECL_BUILT_IN for function and
DECL_RTL always. From-SVN: r7048
Diffstat (limited to 'gcc')
-rw-r--r--gcc/c-decl.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/gcc/c-decl.c b/gcc/c-decl.c
index 6055e3a..a7cd30e 100644
--- a/gcc/c-decl.c
+++ b/gcc/c-decl.c
@@ -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. */