Commit 6e08ecd1 by Andrew Pinski Committed by Andrew Pinski

darwin.c (machopic_non_lazy_ptr_name): Change strcat to memcpy and add length together.

	* config/darwin.c (machopic_non_lazy_ptr_name):
	Change strcat to memcpy and add length together.
	(machopic_stub_name): Likewise.

From-SVN: r72129
parent 522d2b3f
2003-10-05 Andrew Pinski <apinski@apple.com>
* config/darwin.c (machopic_non_lazy_ptr_name):
Change strcat to memcpy and add length together.
(machopic_stub_name): Likewise.
2003-10-05 Kaz Kojima <kkojima@gcc.gnu.org> 2003-10-05 Kaz Kojima <kkojima@gcc.gnu.org>
* config/sh/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Handle new * config/sh/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Handle new
......
...@@ -294,20 +294,28 @@ machopic_non_lazy_ptr_name (const char *name) ...@@ -294,20 +294,28 @@ machopic_non_lazy_ptr_name (const char *name)
{ {
char *buffer; char *buffer;
int namelen = strlen (name);
int bufferlen = 0;
tree ptr_name; tree ptr_name;
buffer = alloca (strlen (name) + 20); buffer = alloca (namelen + strlen("$non_lazy_ptr") + 5);
strcpy (buffer, "&L"); strcpy (buffer, "&L");
bufferlen = 2;
if (name[0] == '*') if (name[0] == '*')
strcat (buffer, name+1); {
memcpy (buffer+bufferlen, name+1, namelen-1+1);
bufferlen += namelen-1;
}
else else
{ {
strcat (buffer, "_"); buffer[bufferlen] = '_';
strcat (buffer, name); memcpy (buffer+bufferlen+1, name, namelen+1);
bufferlen += namelen;
} }
strcat (buffer, "$non_lazy_ptr"); memcpy (buffer + bufferlen, "$non_lazy_ptr", strlen("$non_lazy_ptr")+1);
bufferlen += strlen("$non_lazy_ptr");
ptr_name = get_identifier (buffer); ptr_name = get_identifier (buffer);
machopic_non_lazy_pointers machopic_non_lazy_pointers
...@@ -351,29 +359,46 @@ machopic_stub_name (const char *name) ...@@ -351,29 +359,46 @@ machopic_stub_name (const char *name)
{ {
char *buffer; char *buffer;
int bufferlen = 0;
int namelen = strlen (name);
tree ptr_name; tree ptr_name;
int needs_quotes = name_needs_quotes (name); int needs_quotes = name_needs_quotes (name);
buffer = alloca (strlen (name) + 20); buffer = alloca (namelen + 20);
if (needs_quotes) if (needs_quotes)
strcpy (buffer, "&\"L"); {
strcpy (buffer, "&\"L");
bufferlen = strlen("&\"L");
}
else else
strcpy (buffer, "&L"); {
strcpy (buffer, "&L");
bufferlen = strlen("&L");
}
if (name[0] == '*') if (name[0] == '*')
{ {
strcat (buffer, name+1); memcpy (buffer + bufferlen, name+1, namelen - 1 +1);
bufferlen += namelen - 1;
} }
else else
{ {
strcat (buffer, "_"); buffer[bufferlen] = '_';
strcat (buffer, name); memcpy (buffer + bufferlen +1, name, namelen+1);
bufferlen += namelen;
} }
if (needs_quotes) if (needs_quotes)
strcat (buffer, "$stub\""); {
memcpy (buffer + bufferlen, "$stub\"", strlen("$stub\""));
bufferlen += strlen("$stub\"");
}
else else
strcat (buffer, "$stub"); {
memcpy (buffer + bufferlen, "$stub", strlen("$stub"));
bufferlen += strlen("$stub");
}
ptr_name = get_identifier (buffer); ptr_name = get_identifier (buffer);
machopic_stubs = tree_cons (ptr_name, ident, machopic_stubs); machopic_stubs = tree_cons (ptr_name, ident, machopic_stubs);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment