diff options
author | Jason Merrill <jason@yorick.cygnus.com> | 1998-06-19 22:09:24 +0000 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 1998-06-19 16:09:24 -0600 |
commit | ee8303096a7ad4bfdac14ed8ad8cfa437f2f5e30 (patch) | |
tree | 9a6e1923f7e7d063af614201d24d4b3fece19f1c /gcc/varasm.c | |
parent | 0d091530be45c4f0cd0cb86fd881c3446f967958 (diff) | |
download | gcc-ee8303096a7ad4bfdac14ed8ad8cfa437f2f5e30.zip gcc-ee8303096a7ad4bfdac14ed8ad8cfa437f2f5e30.tar.gz gcc-ee8303096a7ad4bfdac14ed8ad8cfa437f2f5e30.tar.bz2 |
varasm.c (assemble_start_function): Add weak_global_object_name.
* varasm.c (assemble_start_function): Add weak_global_object_name.
* tree.c (get_file_function_name): Use it.
From-SVN: r20612
Diffstat (limited to 'gcc/varasm.c')
-rw-r--r-- | gcc/varasm.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/gcc/varasm.c b/gcc/varasm.c index cd65c90..22b752d 100644 --- a/gcc/varasm.c +++ b/gcc/varasm.c @@ -85,6 +85,7 @@ extern FILE *asm_out_file; /* The (assembler) name of the first globally-visible object output. */ char *first_global_object_name; +char *weak_global_object_name; extern struct obstack *current_obstack; extern struct obstack *saveable_obstack; @@ -1003,14 +1004,19 @@ assemble_start_function (decl, fnname) if (TREE_PUBLIC (decl)) { - if (!first_global_object_name && ! DECL_WEAK (decl) - && ! DECL_ONE_ONLY (decl)) + if (! first_global_object_name) { char *p; + char **name; + + if (! DECL_WEAK (decl) && ! DECL_ONE_ONLY (decl)) + name = &first_global_object_name; + else + name = &weak_global_object_name; STRIP_NAME_ENCODING (p, fnname); - first_global_object_name = permalloc (strlen (p) + 1); - strcpy (first_global_object_name, p); + *name = permalloc (strlen (p) + 1); + strcpy (*name, p); } #ifdef ASM_WEAKEN_LABEL |