|
From: <sv...@va...> - 2016-11-07 14:24:35
|
Author: mjw
Date: Mon Nov 7 14:24:26 2016
New Revision: 16118
Log:
Bug #372120 - c++ demangler demangles symbols which are not c++.
Explicitly check that the symbol starts with "_Z" to only demangle
modern style (gnu_v3) mangled C++ (and Rust) symbols.
Modified:
trunk/NEWS
trunk/coregrind/m_demangle/demangle.c
Modified: trunk/NEWS
==============================================================================
--- trunk/NEWS (original)
+++ trunk/NEWS Mon Nov 7 14:24:26 2016
@@ -23,6 +23,7 @@
371412 Rename wrap_sys_shmat to sys_shmat like other wrappers
371869 support '%' in symbol Z-encoding
+372120 c++ demangler demangles symbols which are not c++
Modified: trunk/coregrind/m_demangle/demangle.c
==============================================================================
--- trunk/coregrind/m_demangle/demangle.c (original)
+++ trunk/coregrind/m_demangle/demangle.c Mon Nov 7 14:24:26 2016
@@ -141,7 +141,8 @@
}
/* Possibly undo (1) */
- if (do_cxx_demangling && VG_(clo_demangle)) {
+ if (do_cxx_demangling && VG_(clo_demangle)
+ && orig != NULL && orig[0] == '_' && orig[1] == 'Z') {
/* !!! vvv STATIC vvv !!! */
static HChar* demangled = NULL;
/* !!! ^^^ STATIC ^^^ !!! */
|