aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorDavid Edelsohn <dje.gcc@gmail.com>2015-11-25 12:52:50 +0000
committerDavid Edelsohn <dje@gcc.gnu.org>2015-11-25 07:52:50 -0500
commit7f085cafa420d8a90b8d1585d54c1c87c589e12e (patch)
tree75ded178eed751bc9ccdf865d204d4145546f99d /gcc
parentb81b8bcadbaf0c703cc88b81f1ed3a6cae583e20 (diff)
downloadgcc-7f085cafa420d8a90b8d1585d54c1c87c589e12e.zip
gcc-7f085cafa420d8a90b8d1585d54c1c87c589e12e.tar.gz
gcc-7f085cafa420d8a90b8d1585d54c1c87c589e12e.tar.bz2
rs6000.c (rs6000_declare_alias): Rename and globalize both the symbol and the "dot" symbol for function descriptors.
* config/rs6000/rs6000.c (rs6000_declare_alias): Rename and globalize both the symbol and the "dot" symbol for function descriptors. Fix inversion for rename of symbols with dollar sign. From-SVN: r230867
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/rs6000/rs6000.c24
2 files changed, 20 insertions, 10 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 82d23c0..932b80c 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2015-11-25 David Edelsohn <dje.gcc@gmail.com>
+
+ * config/rs6000/rs6000.c (rs6000_declare_alias): Rename and globalize
+ both the symbol and the "dot" symbol for function descriptors. Fix
+ inversion for rename of symbols with dollar sign.
+
2015-11-25 Tom de Vries <tom@codesourcery.com>
* cfgloop.c (find_single_latch): New function, factored out of ...
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index 457e944..31e9301 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -31888,13 +31888,15 @@ rs6000_declare_alias (struct symtab_node *n, void *d)
if (dollar_inside) {
if (data->function_descriptor)
fprintf(data->file, "\t.rename .%s,\".%s\"\n", buffer, name);
- else
- fprintf(data->file, "\t.rename %s,\"%s\"\n", buffer, name);
+ fprintf(data->file, "\t.rename %s,\"%s\"\n", buffer, name);
}
if (data->function_descriptor)
- fputs ("\t.globl .", data->file);
- else
- fputs ("\t.globl ", data->file);
+ {
+ fputs ("\t.globl .", data->file);
+ RS6000_OUTPUT_BASENAME (data->file, buffer);
+ putc ('\n', data->file);
+ }
+ fputs ("\t.globl ", data->file);
RS6000_OUTPUT_BASENAME (data->file, buffer);
putc ('\n', data->file);
}
@@ -31908,14 +31910,16 @@ rs6000_declare_alias (struct symtab_node *n, void *d)
if (dollar_inside)
{
if (data->function_descriptor)
- fprintf(data->file, "\t.rename %s,\"%s\"\n", buffer, name);
- else
fprintf(data->file, "\t.rename .%s,\".%s\"\n", buffer, name);
+ fprintf(data->file, "\t.rename %s,\"%s\"\n", buffer, name);
}
if (data->function_descriptor)
- fputs ("\t.lglobl .", data->file);
- else
- fputs ("\t.lglobl ", data->file);
+ {
+ fputs ("\t.lglobl .", data->file);
+ RS6000_OUTPUT_BASENAME (data->file, buffer);
+ putc ('\n', data->file);
+ }
+ fputs ("\t.lglobl ", data->file);
RS6000_OUTPUT_BASENAME (data->file, buffer);
putc ('\n', data->file);
}