From: Ivo Raisr Date: Wed, 2 Nov 2016 21:50:19 +0000 (+0000) Subject: Support '%' in symbol Z-encoding. X-Git-Tag: svn/VALGRIND_3_13_0~309 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7708e249b849b8ab9158701248a2e27613c9e593;p=thirdparty%2Fvalgrind.git Support '%' in symbol Z-encoding. Fixes BZ #371869. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16112 --- diff --git a/NEWS b/NEWS index 42bb8f5e96..2d3a4ceecd 100644 --- a/NEWS +++ b/NEWS @@ -21,7 +21,8 @@ To see details of a given bug, visit https://bugs.kde.org/show_bug.cgi?id=XXXXXX where XXXXXX is the bug number as listed below. -371412 Rename wrap_sys_shmat to sys_shmat like other wrappers +371412 Rename wrap_sys_shmat to sys_shmat like other wrappers +371869 support '%' in symbol Z-encoding diff --git a/coregrind/m_demangle/demangle.c b/coregrind/m_demangle/demangle.c index 78db073be9..db509a18f8 100644 --- a/coregrind/m_demangle/demangle.c +++ b/coregrind/m_demangle/demangle.c @@ -281,6 +281,7 @@ Bool VG_(maybe_Z_demangle) ( const HChar* sym, case 'A': EMITSO('@'); break; case 'D': EMITSO('$'); break; case 'L': EMITSO('('); break; + case 'P': EMITSO('%'); break; case 'R': EMITSO(')'); break; case 'S': EMITSO('/'); break; case 'Z': EMITSO('Z'); break; @@ -331,7 +332,9 @@ Bool VG_(maybe_Z_demangle) ( const HChar* sym, case 'A': EMITFN('@'); break; case 'D': EMITFN('$'); break; case 'L': EMITFN('('); break; + case 'P': EMITFN('%'); break; case 'R': EMITFN(')'); break; + case 'S': EMITFN('/'); break; case 'Z': EMITFN('Z'); break; default: error = True; goto out; } diff --git a/include/pub_tool_redir.h b/include/pub_tool_redir.h index 4ff5155967..a4be688023 100644 --- a/include/pub_tool_redir.h +++ b/include/pub_tool_redir.h @@ -185,9 +185,10 @@ @ --> ZA (at) $ --> ZD (dollar) ( --> ZL (left) + % --> ZP (percent) ) --> ZR (right) + / --> ZS (slash) Z --> ZZ (Z) - / --> ZS (slash) Everything else is left unchanged. */ diff --git a/shared/vg_replace_strmem.c b/shared/vg_replace_strmem.c index f3be419421..e4fde48d32 100644 --- a/shared/vg_replace_strmem.c +++ b/shared/vg_replace_strmem.c @@ -1040,6 +1040,7 @@ static inline void my_exit ( int x ) #elif defined(VGO_solaris) MEMCPY(VG_Z_LIBC_SONAME, memcpy) + MEMCPY(VG_Z_LIBC_SONAME, memcpyZPZa) MEMCPY(VG_Z_LD_SO_1, memcpy) #endif @@ -1187,9 +1188,9 @@ static inline void my_exit ( int x ) pointless. */ #define MEMSET(soname, fnname) \ - void* VG_REPLACE_FUNCTION_EZU(20210,soname,fnname) \ + void* VG_REPLACE_FUNCTION_EZZ(20210,soname,fnname) \ (void *s, Int c, SizeT n); \ - void* VG_REPLACE_FUNCTION_EZU(20210,soname,fnname) \ + void* VG_REPLACE_FUNCTION_EZZ(20210,soname,fnname) \ (void *s, Int c, SizeT n) \ { \ if (sizeof(void*) == 8) { \ @@ -1240,6 +1241,7 @@ static inline void my_exit ( int x ) #elif defined(VGO_solaris) MEMSET(VG_Z_LIBC_SONAME, memset) + MEMSET(VG_Z_LIBC_SONAME, memsetZPZa) #endif @@ -1269,6 +1271,7 @@ static inline void my_exit ( int x ) #elif defined(VGO_solaris) MEMMOVE(VG_Z_LIBC_SONAME, memmove) + MEMMOVE(VG_Z_LIBC_SONAME, memmoveZPZa) MEMMOVE(VG_Z_LD_SO_1, memmove) #endif