From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 16684 invoked by alias); 5 Oct 2003 01:12:17 -0000 Mailing-List: contact gcc-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-owner@gcc.gnu.org Received: (qmail 16671 invoked from network); 5 Oct 2003 01:12:16 -0000 Received: from unknown (HELO mta04.fuse.net) (216.68.1.56) by sources.redhat.com with SMTP; 5 Oct 2003 01:12:16 -0000 Received: from dellpi.pinski.fam ([66.42.149.210]) by mta04.fuse.net (InterMail vM.5.01.06.04 201-253-122-130-104-20030726) with ESMTP id <20031005011215.CXHO29909.mta04.fuse.net@dellpi.pinski.fam>; Sat, 4 Oct 2003 21:12:15 -0400 Received: from physics.uc.edu (IDENT:pinskia@localhost.pinski.fam [127.0.0.1]) by dellpi.pinski.fam (8.12.2/8.12.1) with ESMTP id h951CBCe001018; Sat,: 12:12 -0400 (EDT) Date: Sun, 05 Oct 2003 01:12:00 -0000 Subject: Re: [PATCH] Re: strcat and config/darwin.c Content-Type: multipart/mixed; boundary=Apple-Mail-6--1037698383 Mime-Version: 1.0 (Apple Message framework v552) Cc: gcc-patches@gcc.gnu.org, gcc@gcc.gnu.org, apinski@apple.com To: Andrew Pinski From: Andrew Pinski In-Reply-To: <33F50DFA-3741-11D7-84EB-000393A6D2F2@physics.uc.edu> Message-Id: X-SW-Source: 2003-10/txt/msg00140.txt.bz2 --Apple-Mail-6--1037698383 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed Content-length: 2908 This is really just a ping but it has been updated and changed some variable names in the patch. This is also a simple speedup. ChangeLog: * config/darwin.c: (machopic_non_lazy_ptr_name): Change strcat to memcpy and add length together. (machopic_stub_name): Likewise. (machopic_classify_ident): Change strcpy to memcpy. Patch: Index: darwin.c =================================================================== RCS file: /cvs/gcc/gcc/gcc/config/darwin.c,v retrieving revision 1.46 diff -u -p -r1.46 darwin.c --- darwin.c 27 Sep 2003 04:48:11 -0000 1.46 +++ darwin.c 5 Oct 2003 01:03:38 -0000 @@ -294,20 +294,28 @@ machopic_non_lazy_ptr_name (const char * { char *buffer; + int namelen = strlen (name); + int bufferlen = 0; tree ptr_name; - buffer = alloca (strlen (name) + 20); + buffer = alloca (namelen + strlen("$non_lazy_ptr") + 5); strcpy (buffer, "&L"); + bufferlen = 2; if (name[0] == '*') - strcat (buffer, name+1); + { + memcpy (buffer+bufferlen, name+1, namelen-1+1); + bufferlen += namelen-1; + } else { - strcat (buffer, "_"); - strcat (buffer, name); + buffer[bufferlen] = '_'; + 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); machopic_non_lazy_pointers @@ -351,29 +359,46 @@ machopic_stub_name (const char *name) { char *buffer; + int bufferlen = 0; + int namelen = strlen (name); tree ptr_name; int needs_quotes = name_needs_quotes (name); - buffer = alloca (strlen (name) + 20); + buffer = alloca (namelen + 20); if (needs_quotes) - strcpy (buffer, "&\"L"); + { + strcpy (buffer, "&\"L"); + bufferlen = strlen("&\"L"); + } else - strcpy (buffer, "&L"); + { + strcpy (buffer, "&L"); + bufferlen = strlen("&L"); + } + if (name[0] == '*') { - strcat (buffer, name+1); + memcpy (buffer + bufferlen, name+1, namelen - 1 +1); + bufferlen += namelen - 1; } else { - strcat (buffer, "_"); - strcat (buffer, name); + buffer[bufferlen] = '_'; + memcpy (buffer + bufferlen +1, name, namelen+1); + bufferlen += namelen; } if (needs_quotes) - strcat (buffer, "$stub\""); + { + memcpy (buffer + bufferlen, "$stub\"", strlen("$stub\"")); + bufferlen += strlen("$stub\""); + } else - strcat (buffer, "$stub"); + { + memcpy (buffer + bufferlen, "$stub", strlen("$stub")); + bufferlen += strlen("$stub"); + } ptr_name = get_identifier (buffer); machopic_stubs = tree_cons (ptr_name, ident, machopic_stubs); --Apple-Mail-6--1037698383 Content-Disposition: attachment; filename=strcat.diff Content-Transfer-Encoding: 7bit Content-Type: application/octet-stream; x-unix-mode=0644; name="strcat.diff" Content-length: 2554 Index: darwin.c =================================================================== RCS file: /cvs/gcc/gcc/gcc/config/darwin.c,v retrieving revision 1.46 diff -u -p -r1.46 darwin.c --- darwin.c 27 Sep 2003 04:48:11 -0000 1.46 +++ darwin.c 5 Oct 2003 01:03:38 -0000 @@ -294,20 +294,28 @@ machopic_non_lazy_ptr_name (const char * { char *buffer; + int namelen = strlen (name); + int bufferlen = 0; tree ptr_name; - buffer = alloca (strlen (name) + 20); + buffer = alloca (namelen + strlen("$non_lazy_ptr") + 5); strcpy (buffer, "&L"); + bufferlen = 2; if (name[0] == '*') - strcat (buffer, name+1); + { + memcpy (buffer+bufferlen, name+1, namelen-1+1); + bufferlen += namelen-1; + } else { - strcat (buffer, "_"); - strcat (buffer, name); + buffer[bufferlen] = '_'; + 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); machopic_non_lazy_pointers @@ -351,29 +359,46 @@ machopic_stub_name (const char *name) { char *buffer; + int bufferlen = 0; + int namelen = strlen (name); tree ptr_name; int needs_quotes = name_needs_quotes (name); - buffer = alloca (strlen (name) + 20); + buffer = alloca (namelen + 20); if (needs_quotes) - strcpy (buffer, "&\"L"); + { + strcpy (buffer, "&\"L"); + bufferlen = strlen("&\"L"); + } else - strcpy (buffer, "&L"); + { + strcpy (buffer, "&L"); + bufferlen = strlen("&L"); + } + if (name[0] == '*') { - strcat (buffer, name+1); + memcpy (buffer + bufferlen, name+1, namelen - 1 +1); + bufferlen += namelen - 1; } else { - strcat (buffer, "_"); - strcat (buffer, name); + buffer[bufferlen] = '_'; + memcpy (buffer + bufferlen +1, name, namelen+1); + bufferlen += namelen; } if (needs_quotes) - strcat (buffer, "$stub\""); + { + memcpy (buffer + bufferlen, "$stub\"", strlen("$stub\"")); + bufferlen += strlen("$stub\""); + } else - strcat (buffer, "$stub"); + { + memcpy (buffer + bufferlen, "$stub", strlen("$stub")); + bufferlen += strlen("$stub"); + } ptr_name = get_identifier (buffer); machopic_stubs = tree_cons (ptr_name, ident, machopic_stubs); --Apple-Mail-6--1037698383 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed Content-length: 3 --Apple-Mail-6--1037698383--