Lines Matching defs:cp
42 #include "cp/cp-tree.h"
2689 we emulate the song and dance performed by cp/tree.c:copy_binfo(). */
2716 This is loosely based on cp/decl.c:xref_basetypes(). */
9210 char *demangled, *cp;
9232 cp = demangled = XNEWVEC (char, strlen(mangled) + 2);
9234 *cp++ = '-'; /* for instance method */
9236 *cp++ = '+'; /* for class method */
9237 *cp++ = '['; /* opening left brace */
9238 strcpy(cp, mangled+3); /* tack on the rest of the mangled name */
9239 while (*cp && *cp == '_')
9240 cp++; /* skip any initial underbars in class name */
9241 cp = strchr(cp, '_'); /* find first non-initial underbar */
9242 if (cp == NULL)
9247 if (cp[1] == '_') /* easy case: no category name */
9249 *cp++ = ' '; /* replace two '_' with one ' ' */
9250 strcpy(cp, mangled + (cp - demangled) + 2);
9254 *cp++ = '('; /* less easy case: category name */
9255 cp = strchr(cp, '_');
9256 if (cp == 0)
9261 *cp++ = ')';
9262 *cp++ = ' '; /* overwriting 1st char of method name... */
9263 strcpy(cp, mangled + (cp - demangled)); /* get it back */
9273 while (*cp && *cp == '_')
9274 cp++;
9285 for (; *cp; cp++)
9293 for (; *cp; cp++)
9294 if (*cp == '_')
9295 *cp = ':';
9297 *cp++ = ']'; /* closing right brace */
9298 *cp++ = 0; /* string terminator */