aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn David Anglin <dave@hiauly1.hia.nrc.ca>2002-09-30 19:52:45 +0000
committerJohn David Anglin <danglin@gcc.gnu.org>2002-09-30 19:52:45 +0000
commit7830ba7bc8b9abca19dd09ffb8af3f3b2c08bd27 (patch)
tree189420fe4deced1c1f87d8ad5ae25ea0631f393f
parent344b78b848693ada74b0ce238153c86fdf02ee09 (diff)
downloadgcc-7830ba7bc8b9abca19dd09ffb8af3f3b2c08bd27.zip
gcc-7830ba7bc8b9abca19dd09ffb8af3f3b2c08bd27.tar.gz
gcc-7830ba7bc8b9abca19dd09ffb8af3f3b2c08bd27.tar.bz2
pa.c (hppa_encode_label): Don't drop '*' from function labels.
* pa.c (hppa_encode_label): Don't drop '*' from function labels. (pa_strip_name_encoding): Strip '@' and '*', in that order. * pa.h (ASM_OUTPUT_LABELREF): Output user_label_prefix except when there is a '*' prefix in NAME. From-SVN: r57664
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/config/pa/pa.c9
-rw-r--r--gcc/config/pa/pa.h11
3 files changed, 20 insertions, 7 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index ef6c2ca..3212d1b 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2002-09-30 John David Anglin <dave@hiauly1.hia.nrc.ca>
+
+ * pa.c (hppa_encode_label): Don't drop '*' from function labels.
+ (pa_strip_name_encoding): Strip '@' and '*', in that order.
+ * pa.h (ASM_OUTPUT_LABELREF): Output user_label_prefix except when
+ there is a '*' prefix in NAME.
+
Mon Sep 30 21:33:23 CEST 2002 Jan Hubicka <jh@suse.cz>
* reload.c (push_reload): Handle subregs and secondary memory.
diff --git a/gcc/config/pa/pa.c b/gcc/config/pa/pa.c
index 98944da..1aae00d 100644
--- a/gcc/config/pa/pa.c
+++ b/gcc/config/pa/pa.c
@@ -6487,11 +6487,6 @@ hppa_encode_label (sym)
char *newstr, *p;
p = newstr = alloca (len + 1);
- if (str[0] == '*')
- {
- str++;
- len--;
- }
*p++ = '@';
strcpy (p, str);
@@ -6523,7 +6518,9 @@ static const char *
pa_strip_name_encoding (str)
const char *str;
{
- return str + (*str == '*' || *str == '@');
+ str += (*str == '@');
+ str += (*str == '*');
+ return str;
}
int
diff --git a/gcc/config/pa/pa.h b/gcc/config/pa/pa.h
index 0f18ff0..a6dbcf1 100644
--- a/gcc/config/pa/pa.h
+++ b/gcc/config/pa/pa.h
@@ -1688,7 +1688,16 @@ do { \
`assemble_name' uses this. */
#define ASM_OUTPUT_LABELREF(FILE,NAME) \
- fprintf ((FILE), "%s", (NAME) + (FUNCTION_NAME_P (NAME) ? 1 : 0))
+ do { \
+ const char *xname = (NAME); \
+ if (FUNCTION_NAME_P (NAME)) \
+ xname += 1; \
+ if (xname[0] == '*') \
+ xname += 1; \
+ else \
+ fputs (user_label_prefix, FILE); \
+ fputs (xname, FILE); \
+ } while (0)
/* This is how to output an internal numbered label where
PREFIX is the class of label and NUM is the number within the class. */