Modularised the demangler into m_demangle. (It very nearly fit our new

module structure as-is.)



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3654
This commit is contained in:
Nicholas Nethercote 2005-05-10 04:56:56 +00:00
parent 5d742b1e22
commit da683dd528
15 changed files with 56 additions and 17 deletions

View File

@ -393,7 +393,7 @@ AC_OUTPUT(
include/x86-linux/Makefile
auxprogs/Makefile
coregrind/Makefile
coregrind/demangle/Makefile
coregrind/m_demangle/Makefile
coregrind/m_aspacemgr/Makefile
coregrind/m_replacemalloc/Makefile
coregrind/m_sigframe/Makefile

View File

@ -2,7 +2,7 @@ include $(top_srcdir)/Makefile.all.am
include $(top_srcdir)/Makefile.core-AM_CPPFLAGS.am
MODULES = \
demangle \
m_demangle \
m_aspacemgr \
m_replacemalloc \
m_sigframe \
@ -19,7 +19,7 @@ DIST_SUBDIRS = \
$(VG_ARCH_ALL) $(VG_OS_ALL) $(VG_PLATFORM_ALL) \
$(MODULES) .
AM_CPPFLAGS += -DVG_LIBDIR="\"$(valdir)"\" -I$(srcdir)/demangle \
AM_CPPFLAGS += -DVG_LIBDIR="\"$(valdir)"\" \
-DKICKSTART_BASE=@KICKSTART_BASE@
AM_CFLAGS = $(WERROR) -Wmissing-prototypes -Winline -Wall -Wshadow -O -g @ARCH_CORE_AM_CFLAGS@
@ -39,6 +39,7 @@ noinst_HEADERS = \
core_asm.h \
pub_core_aspacemgr.h \
pub_core_debuglog.h \
pub_core_demangle.h \
pub_core_errormgr.h \
pub_core_execontext.h \
pub_core_mallocfree.h \
@ -75,7 +76,6 @@ stage2_SOURCES = \
ume.c \
\
vg_scheduler.c \
vg_demangle.c \
vg_hashtable.c \
vg_main.c \
vg_messages.c \
@ -95,7 +95,7 @@ stage2_SOURCES = \
## libplatform.a must be before libarch.a and libos.a, it seems.
stage2_extra= \
demangle/libdemangle.a \
m_demangle/libdemangle.a \
m_aspacemgr/libaspacemgr.a \
m_sigframe/libsigframe.a \
m_syscalls/libsyscalls.a \

View File

@ -717,14 +717,6 @@ extern void VG_(nanosleep)(struct vki_timespec *);
use. */
extern void VG_(send_bytes_to_logging_sink) ( Char* msg, Int nbytes );
/* ---------------------------------------------------------------------
Exports of vg_demangle.c
------------------------------------------------------------------ */
extern void VG_(demangle) ( Char* orig, Char* result, Int result_size );
extern void VG_(reloc_abs_jump) ( UChar *jmp );
/* ---------------------------------------------------------------------
Exports of vg_translate.c
------------------------------------------------------------------ */

View File

@ -18,7 +18,11 @@ noinst_HEADERS = \
noinst_LIBRARIES = libdemangle.a
libdemangle_a_SOURCES = \
cp-demangle.c cplus-dem.c dyn-string.c safe-ctype.c
cp-demangle.c \
cplus-dem.c \
demangle.c \
dyn-string.c \
safe-ctype.c
## Ignore harmless warnings for these ones
cp-demangle.o: CFLAGS += -Wno-unused -Wno-shadow

View File

@ -1,7 +1,6 @@
/*--------------------------------------------------------------------*/
/*--- Demangling of C++ mangled names. ---*/
/*--- vg_demangle.c ---*/
/*--- Demangling of C++ mangled names. demangle.c ---*/
/*--------------------------------------------------------------------*/
/*
@ -57,7 +56,6 @@ void VG_(demangle) ( Char* orig, Char* result, Int result_size )
VGP_POPCC(VgpDemangle);
}
/*--------------------------------------------------------------------*/
/*--- end ---*/
/*--------------------------------------------------------------------*/

View File

@ -0,0 +1,45 @@
/*--------------------------------------------------------------------*/
/*--- The C++ name demangler. pub_core_demangle.h ---*/
/*--------------------------------------------------------------------*/
/*
This file is part of Valgrind, a dynamic binary instrumentation
framework.
Copyright (C) 2000-2005 Julian Seward
jseward@acm.org
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307, USA.
The GNU General Public License is contained in the file COPYING.
*/
#ifndef __PUB_CORE_DEMANGLE_H
#define __PUB_CORE_DEMANGLE_H
//--------------------------------------------------------------------
// PURPOSE: This module exports a single function for demangling C++
// names.
//--------------------------------------------------------------------
extern void VG_(demangle) ( Char* orig, Char* result, Int result_size );
#endif // __PUB_CORE_DEMANGLE_H
/*--------------------------------------------------------------------*/
/*--- end ---*/
/*--------------------------------------------------------------------*/