summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormrs <mrs@138bc75d-0d04-0410-961f-82ee72b054a4>2004-07-08 00:12:27 +0000
committermrs <mrs@138bc75d-0d04-0410-961f-82ee72b054a4>2004-07-08 00:12:27 +0000
commite9764bbb35e259c1f8a6afee40f3774d7e0a0126 (patch)
tree5a329264a977068dbe3db0253e13ffdbd066955a
parent4739ef9aaa1fc3c8e0ad199a1be663296a13c7f2 (diff)
downloadgcc-e9764bbb35e259c1f8a6afee40f3774d7e0a0126.tar.gz
* darwin.h (ASM_OUTPUT_LABELREF): Fix -fno-leading-underscore.
* darwin.c (machopic_non_lazy_ptr_name, machopic_stub_name) (machopic_finish): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@84245 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/darwin.c18
-rw-r--r--gcc/config/darwin.h2
3 files changed, 17 insertions, 9 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 11e1eb01bf1..224e26a27c4 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2004-07-07 Mike Stump <mrs@apple.com>
+
+ * darwin.h (ASM_OUTPUT_LABELREF): Fix -fno-leading-underscore.
+ * darwin.c (machopic_non_lazy_ptr_name, machopic_stub_name)
+ (machopic_finish): Likewise.
+
2004-07-07 Richard Henderson <rth@redhat.com>
* tree-ssa-dom.c (simplify_switch_and_lookup_avail_expr): Look
diff --git a/gcc/config/darwin.c b/gcc/config/darwin.c
index 63c75df7c8e..17d7fb77f03 100644
--- a/gcc/config/darwin.c
+++ b/gcc/config/darwin.c
@@ -308,9 +308,10 @@ machopic_non_lazy_ptr_name (const char *name)
}
else
{
- buffer[bufferlen] = '_';
- memcpy (buffer + bufferlen +1, name, namelen+1);
- bufferlen += namelen +1;
+ strcpy (buffer + bufferlen, user_label_prefix);
+ bufferlen += strlen (user_label_prefix);
+ memcpy (buffer + bufferlen, name, namelen+1);
+ bufferlen += namelen;
}
memcpy (buffer + bufferlen, "$non_lazy_ptr", strlen("$non_lazy_ptr")+1);
@@ -383,9 +384,10 @@ machopic_stub_name (const char *name)
}
else
{
- buffer[bufferlen] = '_';
- memcpy (buffer + bufferlen +1, name, namelen+1);
- bufferlen += namelen +1;
+ strcpy (buffer + bufferlen, user_label_prefix);
+ bufferlen += strlen (user_label_prefix);
+ memcpy (buffer + bufferlen, name, namelen+1);
+ bufferlen += namelen;
}
if (needs_quotes)
@@ -909,13 +911,13 @@ machopic_finish (FILE *asm_out_file)
else if (sym_name[0] == '-' || sym_name[0] == '+')
strcpy (sym, sym_name);
else
- sym[0] = '_', strcpy (sym + 1, sym_name);
+ sprintf (sym, "%s%s", user_label_prefix, sym_name);
stub = alloca (strlen (stub_name) + 2);
if (stub_name[0] == '*' || stub_name[0] == '&')
strcpy (stub, stub_name + 1);
else
- stub[0] = '_', strcpy (stub + 1, stub_name);
+ sprintf (stub, "%s%s", user_label_prefix, stub_name);
machopic_output_stub (asm_out_file, sym, stub);
}
diff --git a/gcc/config/darwin.h b/gcc/config/darwin.h
index 582e707aae9..7f6e8dcf8b8 100644
--- a/gcc/config/darwin.h
+++ b/gcc/config/darwin.h
@@ -493,7 +493,7 @@ do { text_section (); \
else if (!strncmp (xname, ".objc_class_name_", 17)) \
fprintf (FILE, "%s", xname); \
else \
- fprintf (FILE, "_%s", xname); \
+ asm_fprintf (FILE, "%U%s", xname); \
} while (0)
/* Output before executable code. */