|
From: <sv...@va...> - 2009-07-26 19:41:23
|
Author: sewardj
Date: 2009-07-26 20:41:07 +0100 (Sun, 26 Jul 2009)
New Revision: 10620
Log:
Add new mangling Z-pair "ZD" to encode '$', since that's sometimes used
in Darwin symbol names.
Modified:
trunk/coregrind/m_demangle/demangle.c
trunk/include/pub_tool_redir.h
Modified: trunk/coregrind/m_demangle/demangle.c
===================================================================
--- trunk/coregrind/m_demangle/demangle.c 2009-07-26 19:28:07 UTC (rev 10619)
+++ trunk/coregrind/m_demangle/demangle.c 2009-07-26 19:41:07 UTC (rev 10620)
@@ -228,16 +228,17 @@
i++;
switch (sym[i]) {
case 'a': EMITSO('*'); break;
- case 'p': EMITSO('+'); break;
case 'c': EMITSO(':'); break;
case 'd': EMITSO('.'); break;
- case 'u': EMITSO('_'); break;
case 'h': EMITSO('-'); break;
+ case 'p': EMITSO('+'); break;
case 's': EMITSO(' '); break;
- case 'Z': EMITSO('Z'); break;
+ case 'u': EMITSO('_'); break;
case 'A': EMITSO('@'); break;
+ case 'D': EMITSO('$'); break;
case 'L': EMITSO('('); break;
case 'R': EMITSO(')'); break;
+ case 'Z': EMITSO('Z'); break;
default: error = True; goto out;
}
i++;
@@ -276,16 +277,17 @@
i++;
switch (sym[i]) {
case 'a': EMITFN('*'); break;
- case 'p': EMITFN('+'); break;
case 'c': EMITFN(':'); break;
case 'd': EMITFN('.'); break;
- case 'u': EMITFN('_'); break;
case 'h': EMITFN('-'); break;
+ case 'p': EMITFN('+'); break;
case 's': EMITFN(' '); break;
+ case 'u': EMITFN('_'); break;
+ case 'A': EMITFN('@'); break;
+ case 'D': EMITFN('$'); break;
+ case 'L': EMITFN('('); break;
+ case 'R': EMITFN(')'); break;
case 'Z': EMITFN('Z'); break;
- case 'A': EMITFN('@'); break;
- case 'L': EMITSO('('); break;
- case 'R': EMITSO(')'); break;
default: error = True; goto out;
}
i++;
Modified: trunk/include/pub_tool_redir.h
===================================================================
--- trunk/include/pub_tool_redir.h 2009-07-26 19:28:07 UTC (rev 10619)
+++ trunk/include/pub_tool_redir.h 2009-07-26 19:41:07 UTC (rev 10620)
@@ -130,16 +130,17 @@
characters are transformed.
* --> Za (asterisk)
- + --> Zp (plus)
: --> Zc (colon)
. --> Zd (dot)
- _ --> Zu (underscore)
- --> Zh (hyphen)
+ + --> Zp (plus)
(space) --> Zs (space)
+ _ --> Zu (underscore)
@ --> ZA (at)
- Z --> ZZ (Z)
+ $ --> ZD (dollar)
( --> ZL (left)
) --> ZR (right)
+ Z --> ZZ (Z)
Everything else is left unchanged.
*/
|