This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] Make rs6000 port bootstrap using G++ as 2nd/3rd stage compilers
- From: Michael Meissner <meissner at linux dot vnet dot ibm dot com>
- To: gcc-patches at gcc dot gnu dot org, dje dot gcc at gmail dot com
- Date: Fri, 22 Jul 2011 11:57:38 -0400
- Subject: Re: [PATCH] Make rs6000 port bootstrap using G++ as 2nd/3rd stage compilers
- References: <20110720180244.GA12585@hungry-tiger.westford.ibm.com>
David asked that I keep in the calls to strchr, etc. This is the change I just
checked in to address the boostrap issue:
2011-07-22 Michael Meissner <meissner@linux.vnet.ibm.com>
* config/rs6000/rs6000.c (rs6000_xcoff_strip_dollar): Rewrite to
avoid warnings when GCC is built with a C++ compiler.
Index: gcc/config/rs6000/rs6000.c
===================================================================
--- gcc/config/rs6000/rs6000.c (revision 176521)
+++ gcc/config/rs6000/rs6000.c (working copy)
@@ -21893,8 +21893,9 @@ toc_hash_eq (const void *h1, const void
const char *
rs6000_xcoff_strip_dollar (const char *name)
{
- char *strip, *p;
- int len;
+ char *strip;
+ const char *p;
+ size_t len, i;
p = strchr (name, '$');
@@ -21902,13 +21903,11 @@ rs6000_xcoff_strip_dollar (const char *n
return name;
len = strlen (name);
- strip = (char *) alloca (len + 1);
- strcpy (strip, name);
- p = strchr (strip, '$');
- while (p)
+ strip = XALLOCAVEC (char, len);
+ for (i = 0; i < len; i++)
{
- *p = '_';
- p = strchr (p + 1, '$');
+ int ch = name[i];
+ strip[i] = (ch == '$') ? '_' : ch;
}
return ggc_alloc_string (strip, len);
--
Michael Meissner, IBM
5 Technology Place Drive, M/S 2757, Westford, MA 01886-3141, USA
meissner@linux.vnet.ibm.com fax +1 (978) 399-6899