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 <meiss...@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 meiss...@linux.vnet.ibm.com fax +1 (978) 399-6899