[multiple changes]
2003-02-27 Benjamin Kosnik <bkoz@redhat.com> * src/Makefile.am (sources): Add demangle.cc. (demangle.o): Add. (demangle.lo): Add. * src/Makefile.in: Regenerate. * libsupc++/Makefile.am: Remove old __cxa_demangle bits. * libsupc++/Makefile.in: Regenerate. * testsuite/testsuite_hooks.h (__gnu_cxx_test::verify_demangle): New. * testsuite/testsuite_hooks.cc: Define. 2003-02-27 Carlo Wood <carlo@alinoe.com> * src/demangle.cc: New. * libsupc++/demangle.h: New. 2003-02-27 Benjamin Kosnik <bkoz@redhat.com> Carlo Wood <carlo@alinoe.com> * testsuite/demangle/abi_examples/01.cc: New. * testsuite/demangle/abi_examples/02.cc: New. * testsuite/demangle/abi_examples/03.cc: New. * testsuite/demangle/abi_examples/04.cc: New. * testsuite/demangle/abi_examples/05.cc: New. * testsuite/demangle/abi_examples/06.cc: New. * testsuite/demangle/abi_examples/07.cc: New. * testsuite/demangle/abi_examples/08.cc: New. * testsuite/demangle/abi_examples/09.cc: New. * testsuite/demangle/abi_examples/10.cc: New. * testsuite/demangle/abi_examples/11.cc: New. * testsuite/demangle/abi_examples/12.cc: New. * testsuite/demangle/abi_examples/13.cc: New. * testsuite/demangle/abi_examples/14.cc: New. * testsuite/demangle/abi_examples/15.cc: New. * testsuite/demangle/abi_examples/16.cc: New. * testsuite/demangle/abi_examples/17.cc: New. * testsuite/demangle/abi_examples/18.cc: New. * testsuite/demangle/abi_examples/19.cc: New. * testsuite/demangle/abi_examples/20.cc: New. * testsuite/demangle/abi_examples/21.cc: New. * testsuite/demangle/abi_examples/22.cc: New. * testsuite/demangle/abi_examples/23.cc: New. * testsuite/demangle/abi_examples/24.cc: New. * testsuite/demangle/abi_examples/25.cc: New. * testsuite/demangle/abi_examples/26.cc: New. * testsuite/demangle/abi_text/01.cc: New. * testsuite/demangle/abi_text/02.cc: New. * testsuite/demangle/abi_text/03.cc: New. * testsuite/demangle/abi_text/04.cc: New. * testsuite/demangle/abi_text/05.cc: New. * testsuite/demangle/abi_text/06.cc: New. * testsuite/demangle/abi_text/07.cc: New. * testsuite/demangle/abi_text/08.cc: New. * testsuite/demangle/abi_text/09.cc: New. * testsuite/demangle/abi_text/10.cc: New. * testsuite/demangle/abi_text/11.cc: New. * testsuite/demangle/abi_text/12.cc: New. * testsuite/demangle/abi_text/13.cc: New. * testsuite/demangle/abi_text/14.cc: New. * testsuite/demangle/regression/3111-1.cc: New. * testsuite/demangle/regression/3111-2.cc: New. * testsuite/demangle/regression/7986-01.cc: New. * testsuite/demangle/regression/7986-02.cc: New. * testsuite/demangle/regression/7986-03.cc: New. * testsuite/demangle/regression/7986-04.cc: New. * testsuite/demangle/regression/7986-05.cc: New. * testsuite/demangle/regression/7986-06.cc: New. * testsuite/demangle/regression/7986-07.cc: New. * testsuite/demangle/regression/7986-08.cc: New. * testsuite/demangle/regression/7986-09.cc: New. * testsuite/demangle/regression/7986-10.cc: New. * testsuite/demangle/regression/7986-11.cc: New. * testsuite/demangle/regression/7986-12.cc: New. * testsuite/demangle/regression/7986.cc: New. * testsuite/demangle/regression/8897.cc: New. * testsuite/demangle/regression/cw-01.cc: New. * testsuite/demangle/regression/cw-02.cc: New. * testsuite/demangle/regression/cw-03.cc: New. * testsuite/demangle/regression/cw-04.cc: New. * testsuite/demangle/regression/cw-05.cc: New. * testsuite/demangle/regression/cw-06.cc: New. * testsuite/demangle/regression/cw-07.cc: New. * testsuite/demangle/regression/cw-08.cc: New. * testsuite/demangle/regression/cw-09.cc: New. * testsuite/demangle/regression/cw-10.cc: New. * testsuite/demangle/regression/cw-11.cc: New. * testsuite/demangle/regression/cw-12.cc: New. * testsuite/demangle/regression/cw-13.cc: New. * testsuite/demangle/regression/cw-14.cc: New. * testsuite/demangle/regression/old.cc: New. From-SVN: r63513
This commit is contained in:
parent
986704f1c1
commit
4ffbd0777c
@ -1,3 +1,96 @@
|
||||
2003-02-27 Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
* src/Makefile.am (sources): Add demangle.cc.
|
||||
(demangle.o): Add.
|
||||
(demangle.lo): Add.
|
||||
* src/Makefile.in: Regenerate.
|
||||
* libsupc++/Makefile.am: Remove old __cxa_demangle bits.
|
||||
* libsupc++/Makefile.in: Regenerate.
|
||||
|
||||
* testsuite/testsuite_hooks.h
|
||||
(__gnu_cxx_test::verify_demangle): New.
|
||||
* testsuite/testsuite_hooks.cc: Define.
|
||||
|
||||
2003-02-27 Carlo Wood <carlo@alinoe.com>
|
||||
|
||||
* src/demangle.cc: New.
|
||||
* libsupc++/demangle.h: New.
|
||||
|
||||
2003-02-27 Benjamin Kosnik <bkoz@redhat.com>
|
||||
Carlo Wood <carlo@alinoe.com>
|
||||
|
||||
* testsuite/demangle/abi_examples/01.cc: New.
|
||||
* testsuite/demangle/abi_examples/02.cc: New.
|
||||
* testsuite/demangle/abi_examples/03.cc: New.
|
||||
* testsuite/demangle/abi_examples/04.cc: New.
|
||||
* testsuite/demangle/abi_examples/05.cc: New.
|
||||
* testsuite/demangle/abi_examples/06.cc: New.
|
||||
* testsuite/demangle/abi_examples/07.cc: New.
|
||||
* testsuite/demangle/abi_examples/08.cc: New.
|
||||
* testsuite/demangle/abi_examples/09.cc: New.
|
||||
* testsuite/demangle/abi_examples/10.cc: New.
|
||||
* testsuite/demangle/abi_examples/11.cc: New.
|
||||
* testsuite/demangle/abi_examples/12.cc: New.
|
||||
* testsuite/demangle/abi_examples/13.cc: New.
|
||||
* testsuite/demangle/abi_examples/14.cc: New.
|
||||
* testsuite/demangle/abi_examples/15.cc: New.
|
||||
* testsuite/demangle/abi_examples/16.cc: New.
|
||||
* testsuite/demangle/abi_examples/17.cc: New.
|
||||
* testsuite/demangle/abi_examples/18.cc: New.
|
||||
* testsuite/demangle/abi_examples/19.cc: New.
|
||||
* testsuite/demangle/abi_examples/20.cc: New.
|
||||
* testsuite/demangle/abi_examples/21.cc: New.
|
||||
* testsuite/demangle/abi_examples/22.cc: New.
|
||||
* testsuite/demangle/abi_examples/23.cc: New.
|
||||
* testsuite/demangle/abi_examples/24.cc: New.
|
||||
* testsuite/demangle/abi_examples/25.cc: New.
|
||||
* testsuite/demangle/abi_examples/26.cc: New.
|
||||
* testsuite/demangle/abi_text/01.cc: New.
|
||||
* testsuite/demangle/abi_text/02.cc: New.
|
||||
* testsuite/demangle/abi_text/03.cc: New.
|
||||
* testsuite/demangle/abi_text/04.cc: New.
|
||||
* testsuite/demangle/abi_text/05.cc: New.
|
||||
* testsuite/demangle/abi_text/06.cc: New.
|
||||
* testsuite/demangle/abi_text/07.cc: New.
|
||||
* testsuite/demangle/abi_text/08.cc: New.
|
||||
* testsuite/demangle/abi_text/09.cc: New.
|
||||
* testsuite/demangle/abi_text/10.cc: New.
|
||||
* testsuite/demangle/abi_text/11.cc: New.
|
||||
* testsuite/demangle/abi_text/12.cc: New.
|
||||
* testsuite/demangle/abi_text/13.cc: New.
|
||||
* testsuite/demangle/abi_text/14.cc: New.
|
||||
* testsuite/demangle/regression/3111-1.cc: New.
|
||||
* testsuite/demangle/regression/3111-2.cc: New.
|
||||
* testsuite/demangle/regression/7986-01.cc: New.
|
||||
* testsuite/demangle/regression/7986-02.cc: New.
|
||||
* testsuite/demangle/regression/7986-03.cc: New.
|
||||
* testsuite/demangle/regression/7986-04.cc: New.
|
||||
* testsuite/demangle/regression/7986-05.cc: New.
|
||||
* testsuite/demangle/regression/7986-06.cc: New.
|
||||
* testsuite/demangle/regression/7986-07.cc: New.
|
||||
* testsuite/demangle/regression/7986-08.cc: New.
|
||||
* testsuite/demangle/regression/7986-09.cc: New.
|
||||
* testsuite/demangle/regression/7986-10.cc: New.
|
||||
* testsuite/demangle/regression/7986-11.cc: New.
|
||||
* testsuite/demangle/regression/7986-12.cc: New.
|
||||
* testsuite/demangle/regression/7986.cc: New.
|
||||
* testsuite/demangle/regression/8897.cc: New.
|
||||
* testsuite/demangle/regression/cw-01.cc: New.
|
||||
* testsuite/demangle/regression/cw-02.cc: New.
|
||||
* testsuite/demangle/regression/cw-03.cc: New.
|
||||
* testsuite/demangle/regression/cw-04.cc: New.
|
||||
* testsuite/demangle/regression/cw-05.cc: New.
|
||||
* testsuite/demangle/regression/cw-06.cc: New.
|
||||
* testsuite/demangle/regression/cw-07.cc: New.
|
||||
* testsuite/demangle/regression/cw-08.cc: New.
|
||||
* testsuite/demangle/regression/cw-09.cc: New.
|
||||
* testsuite/demangle/regression/cw-10.cc: New.
|
||||
* testsuite/demangle/regression/cw-11.cc: New.
|
||||
* testsuite/demangle/regression/cw-12.cc: New.
|
||||
* testsuite/demangle/regression/cw-13.cc: New.
|
||||
* testsuite/demangle/regression/cw-14.cc: New.
|
||||
* testsuite/demangle/regression/old.cc: New.
|
||||
|
||||
2003-02-25 Phil Edwards <pme@gcc.gnu.org>
|
||||
|
||||
* docs/doxygen/Intro.3: Update with new (proper) names.
|
||||
|
2408
libstdc++-v3/configure
vendored
2408
libstdc++-v3/configure
vendored
File diff suppressed because it is too large
Load Diff
@ -1,6 +1,6 @@
|
||||
## Makefile for the GNU C++ Support library.
|
||||
##
|
||||
## Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.
|
||||
## Copyright (C) 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
|
||||
##
|
||||
## Process this file with automake to produce Makefile.in.
|
||||
##
|
||||
@ -55,6 +55,8 @@ CONFIG_CXXFLAGS = \
|
||||
WARN_CXXFLAGS = \
|
||||
@WARN_FLAGS@ $(WERROR) -fdiagnostics-show-location=once
|
||||
|
||||
LIBSUPCXX_CXXFLAGS = @LIBSUPCXX_PICFLAGS@
|
||||
|
||||
# Use common includes from acinclude.m4/GLIBCPP_EXPORT_INCLUDES
|
||||
GLIBCPP_INCLUDES = @GLIBCPP_INCLUDES@
|
||||
LIBSUPCXX_INCLUDES = @LIBSUPCXX_INCLUDES@
|
||||
@ -66,10 +68,6 @@ INCLUDES = \
|
||||
headers = \
|
||||
exception new typeinfo cxxabi.h exception_defines.h
|
||||
|
||||
c_sources = \
|
||||
cxa_demangle.c \
|
||||
dyn-string.c
|
||||
|
||||
sources = \
|
||||
del_op.cc \
|
||||
del_opnt.cc \
|
||||
@ -98,14 +96,12 @@ sources = \
|
||||
vec.cc \
|
||||
vterminate.cc
|
||||
|
||||
libsupc___la_SOURCES = $(sources) $(c_sources)
|
||||
libsupc__convenience_la_SOURCES = $(sources) $(c_sources)
|
||||
libsupc___la_SOURCES = $(sources)
|
||||
libsupc__convenience_la_SOURCES = $(sources)
|
||||
|
||||
glibcppinstalldir = @gxx_include_dir@
|
||||
glibcppinstall_HEADERS = $(headers)
|
||||
|
||||
LIBSUPCXX_CXXFLAGS = $(LIBSUPCXX_PICFLAGS)
|
||||
|
||||
# Use special rules for pulling things out of libiberty. These
|
||||
# objects should be compiled with the "C" compiler, not the C++
|
||||
# compiler, and also should not use the C++ includes.
|
||||
@ -113,32 +109,16 @@ C_COMPILE = \
|
||||
$(CC) $(DEFS) $(GCC_INCLUDES) \
|
||||
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||
|
||||
cxa_demangle.c:
|
||||
rm -f $@
|
||||
$(LN_S) $(toplevel_srcdir)/libiberty/cp-demangle.c $@
|
||||
cxa_demangle.lo: cxa_demangle.c
|
||||
$(LTCOMPILE) -DIN_GLIBCPP_V3 -Wno-error -c $<
|
||||
cxa_demangle.o: cxa_demangle.c
|
||||
$(C_COMPILE) -DIN_GLIBCPP_V3 -Wno-error -c $<
|
||||
dyn-string.c:
|
||||
rm -f $@
|
||||
$(LN_S) $(toplevel_srcdir)/libiberty/dyn-string.c $@
|
||||
dyn-string.lo: dyn-string.c
|
||||
$(LTCOMPILE) -DIN_GLIBCPP_V3 -Wno-error -c $<
|
||||
dyn-string.o: dyn-string.c
|
||||
$(C_COMPILE) -DIN_GLIBCPP_V3 -Wno-error -c $<
|
||||
|
||||
# LTCOMPILE is copied from LTCXXCOMPILE below.
|
||||
LTCOMPILE = $(LIBTOOL) --tag CC --tag disable-shared --mode=compile $(CC) \
|
||||
$(DEFS) $(GCC_INCLUDES) $(LIBSUPCXX_PICFLAGS) \
|
||||
$(AM_CPPFLAGS) $(CPPFLAGS)
|
||||
|
||||
|
||||
# AM_CXXFLAGS needs to be in each subdirectory so that it can be
|
||||
# modified in a per-library or per-sub-library way. Need to manually
|
||||
# set this option because CONFIG_CXXFLAGS has to be after
|
||||
# OPTIMIZE_CXXFLAGS on the compile line so that -O2 can be overridden
|
||||
# as the occasion call for it. (ie, --enable-debug)
|
||||
# as the occasion call for it.
|
||||
AM_CXXFLAGS = \
|
||||
-fno-implicit-templates \
|
||||
$(LIBSUPCXX_CXXFLAGS) \
|
||||
|
@ -173,6 +173,8 @@ WARN_CXXFLAGS = \
|
||||
@WARN_FLAGS@ $(WERROR) -fdiagnostics-show-location=once
|
||||
|
||||
|
||||
LIBSUPCXX_CXXFLAGS = @LIBSUPCXX_PICFLAGS@
|
||||
|
||||
# Use common includes from acinclude.m4/GLIBCPP_EXPORT_INCLUDES
|
||||
GLIBCPP_INCLUDES = @GLIBCPP_INCLUDES@
|
||||
LIBSUPCXX_INCLUDES = @LIBSUPCXX_INCLUDES@
|
||||
@ -186,11 +188,6 @@ headers = \
|
||||
exception new typeinfo cxxabi.h exception_defines.h
|
||||
|
||||
|
||||
c_sources = \
|
||||
cxa_demangle.c \
|
||||
dyn-string.c
|
||||
|
||||
|
||||
sources = \
|
||||
del_op.cc \
|
||||
del_opnt.cc \
|
||||
@ -220,14 +217,12 @@ sources = \
|
||||
vterminate.cc
|
||||
|
||||
|
||||
libsupc___la_SOURCES = $(sources) $(c_sources)
|
||||
libsupc__convenience_la_SOURCES = $(sources) $(c_sources)
|
||||
libsupc___la_SOURCES = $(sources)
|
||||
libsupc__convenience_la_SOURCES = $(sources)
|
||||
|
||||
glibcppinstalldir = @gxx_include_dir@
|
||||
glibcppinstall_HEADERS = $(headers)
|
||||
|
||||
LIBSUPCXX_CXXFLAGS = $(LIBSUPCXX_PICFLAGS)
|
||||
|
||||
# Use special rules for pulling things out of libiberty. These
|
||||
# objects should be compiled with the "C" compiler, not the C++
|
||||
# compiler, and also should not use the C++ includes.
|
||||
@ -246,7 +241,7 @@ LTCOMPILE = $(LIBTOOL) --tag CC --tag disable-shared --mode=compile $(CC) \
|
||||
# modified in a per-library or per-sub-library way. Need to manually
|
||||
# set this option because CONFIG_CXXFLAGS has to be after
|
||||
# OPTIMIZE_CXXFLAGS on the compile line so that -O2 can be overridden
|
||||
# as the occasion call for it. (ie, --enable-debug)
|
||||
# as the occasion call for it.
|
||||
AM_CXXFLAGS = \
|
||||
-fno-implicit-templates \
|
||||
$(LIBSUPCXX_CXXFLAGS) \
|
||||
@ -307,7 +302,7 @@ del_opvnt.lo eh_alloc.lo eh_aux_runtime.lo eh_catch.lo eh_exception.lo \
|
||||
eh_globals.lo eh_personality.lo eh_term_handler.lo eh_terminate.lo \
|
||||
eh_throw.lo eh_type.lo eh_unex_handler.lo guard.lo new_handler.lo \
|
||||
new_op.lo new_opnt.lo new_opv.lo new_opvnt.lo pure.lo tinfo.lo \
|
||||
tinfo2.lo vec.lo vterminate.lo cxa_demangle.lo dyn-string.lo
|
||||
tinfo2.lo vec.lo vterminate.lo
|
||||
libsupc___la_LDFLAGS =
|
||||
libsupc___la_LIBADD =
|
||||
libsupc___la_OBJECTS = del_op.lo del_opnt.lo del_opv.lo del_opvnt.lo \
|
||||
@ -315,14 +310,10 @@ eh_alloc.lo eh_aux_runtime.lo eh_catch.lo eh_exception.lo eh_globals.lo \
|
||||
eh_personality.lo eh_term_handler.lo eh_terminate.lo eh_throw.lo \
|
||||
eh_type.lo eh_unex_handler.lo guard.lo new_handler.lo new_op.lo \
|
||||
new_opnt.lo new_opv.lo new_opvnt.lo pure.lo tinfo.lo tinfo2.lo vec.lo \
|
||||
vterminate.lo cxa_demangle.lo dyn-string.lo
|
||||
vterminate.lo
|
||||
CXXFLAGS = @CXXFLAGS@
|
||||
CXXCOMPILE = $(CXX) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
|
||||
CXXLD = $(CXX)
|
||||
CFLAGS = @CFLAGS@
|
||||
COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||
CCLD = $(CC)
|
||||
LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
|
||||
HEADERS = $(glibcppinstall_HEADERS)
|
||||
|
||||
DIST_COMMON = Makefile.am Makefile.in
|
||||
@ -568,21 +559,6 @@ mostlyclean-generic distclean-generic clean-generic \
|
||||
maintainer-clean-generic clean mostlyclean distclean maintainer-clean
|
||||
|
||||
|
||||
cxa_demangle.c:
|
||||
rm -f $@
|
||||
$(LN_S) $(toplevel_srcdir)/libiberty/cp-demangle.c $@
|
||||
cxa_demangle.lo: cxa_demangle.c
|
||||
$(LTCOMPILE) -DIN_GLIBCPP_V3 -Wno-error -c $<
|
||||
cxa_demangle.o: cxa_demangle.c
|
||||
$(C_COMPILE) -DIN_GLIBCPP_V3 -Wno-error -c $<
|
||||
dyn-string.c:
|
||||
rm -f $@
|
||||
$(LN_S) $(toplevel_srcdir)/libiberty/dyn-string.c $@
|
||||
dyn-string.lo: dyn-string.c
|
||||
$(LTCOMPILE) -DIN_GLIBCPP_V3 -Wno-error -c $<
|
||||
dyn-string.o: dyn-string.c
|
||||
$(C_COMPILE) -DIN_GLIBCPP_V3 -Wno-error -c $<
|
||||
|
||||
# We have to have rules modified from the default to counteract SUN make
|
||||
# prepending each of $(glibcppinstall_HEADERS) with VPATH below.
|
||||
install-glibcppinstallHEADERS: $(glibcppinstall_HEADERS)
|
||||
|
2359
libstdc++-v3/libsupc++/demangle.h
Normal file
2359
libstdc++-v3/libsupc++/demangle.h
Normal file
File diff suppressed because it is too large
Load Diff
@ -121,6 +121,7 @@ sources = \
|
||||
complex_io.cc \
|
||||
concept-inst.cc \
|
||||
ctype.cc \
|
||||
demangle.cc \
|
||||
ext-inst.cc \
|
||||
fstream.cc \
|
||||
fstream-inst.cc \
|
||||
@ -177,6 +178,13 @@ concept-inst.lo: concept-inst.cc
|
||||
concept-inst.o: concept-inst.cc
|
||||
$(CXXCOMPILE) -D_GLIBCPP_CONCEPT_CHECKS -fimplicit-templates -c $<
|
||||
|
||||
# Use special rules for the demangler, so that an additional implicit
|
||||
# instantiation file is not necessary.
|
||||
demangle.lo: demangle.cc
|
||||
$(LTCXXCOMPILE) -fimplicit-templates -c $<
|
||||
demangle.o: demangle.cc
|
||||
$(CXXCOMPILE) -fimplicit-templates -c $<
|
||||
|
||||
|
||||
# AM_CXXFLAGS needs to be in each subdirectory so that it can be
|
||||
# modified in a per-library or per-sub-library way. Need to manually
|
||||
|
@ -203,6 +203,7 @@ sources = \
|
||||
complex_io.cc \
|
||||
concept-inst.cc \
|
||||
ctype.cc \
|
||||
demangle.cc \
|
||||
ext-inst.cc \
|
||||
fstream.cc \
|
||||
fstream-inst.cc \
|
||||
@ -305,9 +306,9 @@ CPPFLAGS = @CPPFLAGS@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LIBS = @LIBS@
|
||||
libstdc___la_OBJECTS = codecvt.lo complex_io.lo concept-inst.lo \
|
||||
ctype.lo ext-inst.lo fstream.lo fstream-inst.lo functexcept.lo \
|
||||
globals.lo io-inst.lo ios.lo istream-inst.lo limits.lo locale.lo \
|
||||
locale-inst.lo localename.lo misc-inst.lo ostream-inst.lo \
|
||||
ctype.lo demangle.lo ext-inst.lo fstream.lo fstream-inst.lo \
|
||||
functexcept.lo globals.lo io-inst.lo ios.lo istream-inst.lo limits.lo \
|
||||
locale.lo locale-inst.lo localename.lo misc-inst.lo ostream-inst.lo \
|
||||
sstream-inst.lo stdexcept.lo stl-inst.lo streambuf-inst.lo \
|
||||
string-inst.lo strstream.lo valarray-inst.lo wstring-inst.lo \
|
||||
codecvt_members.lo collate_members.lo ctype_members.lo \
|
||||
@ -582,6 +583,13 @@ concept-inst.lo: concept-inst.cc
|
||||
concept-inst.o: concept-inst.cc
|
||||
$(CXXCOMPILE) -D_GLIBCPP_CONCEPT_CHECKS -fimplicit-templates -c $<
|
||||
|
||||
# Use special rules for the demangler, so that an additional implicit
|
||||
# instantiation file is not necessary.
|
||||
demangle.lo: demangle.cc
|
||||
$(LTCXXCOMPILE) -fimplicit-templates -c $<
|
||||
demangle.o: demangle.cc
|
||||
$(CXXCOMPILE) -fimplicit-templates -c $<
|
||||
|
||||
# Added bits to build debug library.
|
||||
@GLIBCPP_BUILD_DEBUG_TRUE@all-local: build_debug
|
||||
@GLIBCPP_BUILD_DEBUG_TRUE@install-data-local: install_debug
|
||||
|
170
libstdc++-v3/src/demangle.cc
Normal file
170
libstdc++-v3/src/demangle.cc
Normal file
@ -0,0 +1,170 @@
|
||||
// C++ IA64 / g++ v3 demangler -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
// Written by Carlo Wood <carlo@alinoe.com>
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library 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, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library 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 library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
// library without restriction. Specifically, if other files instantiate
|
||||
// templates or use macros or inline functions from this file, or you compile
|
||||
// this file and link it with other files to produce an executable, this
|
||||
// file does not by itself cause the resulting executable to be covered by
|
||||
// the GNU General Public License. This exception does not however
|
||||
// invalidate any other reasons why the executable file might be covered by
|
||||
// the GNU General Public License.
|
||||
|
||||
#include <cxxabi.h>
|
||||
#include "demangle.h"
|
||||
|
||||
// __cxa_demangle
|
||||
//
|
||||
// Demangle a C++ symbol or type name.
|
||||
//
|
||||
// `mangled-name' is a pointer to a null-terminated array of characters.
|
||||
// It may be either an external name, i.e. with a "_Z" prefix, or an
|
||||
// internal NTBS mangling, e.g. of a type for type_info.
|
||||
//
|
||||
// `buf' may be null. If it is non-null, then n must also be non-null,
|
||||
// and buf is a pointer to an array, of at least *n characters, that
|
||||
// was allocated using malloc.
|
||||
//
|
||||
// `status' points to an int that is used as an error indicator. It is
|
||||
// permitted to be null, in which case the user just doesn't get any
|
||||
// detailed error information.
|
||||
//
|
||||
// Returns: a pointer to a null-terminated array of characters, the
|
||||
// demangled name. Or NULL in case of failure.
|
||||
//
|
||||
// If there is an error in demangling, the return value is a null pointer.
|
||||
// The user can examine *status to find out what kind of error occurred.
|
||||
// Meaning of error indications:
|
||||
//
|
||||
// * 0: success
|
||||
// * -1: memory allocation failure
|
||||
// * -2: invalid mangled name
|
||||
// * -3: invalid arguments (e.g. buf nonnull and n null)
|
||||
//
|
||||
|
||||
namespace __cxxabiv1
|
||||
{
|
||||
namespace
|
||||
{
|
||||
char* const error = 0;
|
||||
|
||||
enum status_codes
|
||||
{
|
||||
success = 0,
|
||||
memory_allocation_failure = -1,
|
||||
invalid_mangled_name = -2,
|
||||
invalid_argument = -3
|
||||
};
|
||||
|
||||
inline char*
|
||||
failure(status_codes error_code, int* status)
|
||||
{
|
||||
if (status)
|
||||
*status = error_code;
|
||||
return error;
|
||||
}
|
||||
|
||||
char*
|
||||
finish(char const* demangled_name, size_t demangled_name_size,
|
||||
char* buf, size_t* n, int* status)
|
||||
{
|
||||
if (!buf || *n < demangled_name_size + 1)
|
||||
{
|
||||
if (n)
|
||||
*n = demangled_name_size + 1;
|
||||
buf = (char*)realloc(buf, demangled_name_size + 1);
|
||||
if (!buf)
|
||||
return failure(memory_allocation_failure, status);
|
||||
}
|
||||
if (status)
|
||||
*status = success;
|
||||
std::strncpy(buf, demangled_name, demangled_name_size);
|
||||
buf[demangled_name_size] = 0;
|
||||
return buf;
|
||||
}
|
||||
} // namespace
|
||||
|
||||
char*
|
||||
__cxa_demangle(char const* mangled_name, char* buf, std::size_t* n,
|
||||
int* status)
|
||||
{
|
||||
using namespace __gnu_cxx;
|
||||
typedef demangler::session<std::allocator<char> > session_type;
|
||||
|
||||
if (!mangled_name || (buf && !n))
|
||||
return failure(invalid_argument, status);
|
||||
|
||||
std::string result;
|
||||
if (mangled_name[0] == '_')
|
||||
{
|
||||
// External name?
|
||||
if (mangled_name[1] == 'Z')
|
||||
{
|
||||
// C++ name?
|
||||
int cnt = session_type::
|
||||
decode_encoding(result, mangled_name + 2, INT_MAX);
|
||||
if (cnt < 0 || mangled_name[cnt + 2] != 0)
|
||||
return failure(invalid_mangled_name, status);
|
||||
return finish(result.data(), result.size(), buf, n, status);
|
||||
}
|
||||
else if (mangled_name[1] == 'G')
|
||||
{
|
||||
// Possible _GLOBAL__ extension?
|
||||
if (!std::strncmp(mangled_name, "_GLOBAL__", 9)
|
||||
&& (mangled_name[9] == 'D' || mangled_name[9] == 'I')
|
||||
&& mangled_name[10] == '_' && mangled_name[11] == '_'
|
||||
&& mangled_name[12] == 'Z')
|
||||
{
|
||||
if (mangled_name[9] == 'D')
|
||||
result.assign("global destructors keyed to ", 28);
|
||||
else
|
||||
result.assign("global constructors keyed to ", 29);
|
||||
int cnt = session_type::
|
||||
decode_encoding(result, mangled_name + 13, INT_MAX);
|
||||
if (cnt < 0 || mangled_name[cnt + 13] != 0)
|
||||
return failure(invalid_mangled_name, status);
|
||||
return finish(result.data(), result.size(), buf, n, status);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Ambiguities are possible between extern "C" object names and
|
||||
// internal built-in type names, e.g. "i" may be either an object
|
||||
// named "i" or the built-in "int" type. Such ambiguities should
|
||||
// be resolved to user names over built-in names. Builtin types
|
||||
// are any single lower case character. Any other single
|
||||
// character is not a mangled type so we can treat those the same
|
||||
// here.
|
||||
if (mangled_name[1] == 0)
|
||||
return finish(mangled_name, 1, buf, n, status);
|
||||
|
||||
// Not a built-in type or external name, try to demangle input as
|
||||
// NTBS mangled type name.
|
||||
session_type demangler_session(mangled_name, INT_MAX);
|
||||
if (!demangler_session.decode_type(result)
|
||||
|| demangler_session.remaining_input_characters())
|
||||
{
|
||||
// Failure to demangle, assume extern "C" name.
|
||||
result = mangled_name;
|
||||
}
|
||||
return finish(result.data(), result.size(), buf, n, status);
|
||||
}
|
||||
} // namespace __cxxabiv1
|
37
libstdc++-v3/testsuite/demangle/abi_examples/01.cc
Normal file
37
libstdc++-v3/testsuite/demangle/abi_examples/01.cc
Normal file
@ -0,0 +1,37 @@
|
||||
// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
// Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library 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, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library 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 library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
|
||||
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
// Examples given in the IA64 C++ ABI
|
||||
// http://www.codesourcery.com/cxx-abi/abi-examples.html#mangling
|
||||
int main()
|
||||
{
|
||||
using namespace __gnu_cxx_test;
|
||||
|
||||
// extern "C" function
|
||||
// extern "C" float f(void) { };
|
||||
// T f
|
||||
verify_demangle("f", "f");
|
||||
|
||||
return 0;
|
||||
}
|
37
libstdc++-v3/testsuite/demangle/abi_examples/02.cc
Normal file
37
libstdc++-v3/testsuite/demangle/abi_examples/02.cc
Normal file
@ -0,0 +1,37 @@
|
||||
// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
// Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library 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, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library 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 library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
|
||||
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
// Examples given in the IA64 C++ ABI
|
||||
// http://www.codesourcery.com/cxx-abi/abi-examples.html#mangling
|
||||
int main()
|
||||
{
|
||||
using namespace __gnu_cxx_test;
|
||||
|
||||
// or variable "f"
|
||||
// int f;
|
||||
// B f
|
||||
verify_demangle("f", "f");
|
||||
|
||||
return 0;
|
||||
}
|
41
libstdc++-v3/testsuite/demangle/abi_examples/03.cc
Normal file
41
libstdc++-v3/testsuite/demangle/abi_examples/03.cc
Normal file
@ -0,0 +1,41 @@
|
||||
// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
// Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library 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, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library 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 library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
|
||||
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
// Examples given in the IA64 C++ ABI
|
||||
// http://www.codesourcery.com/cxx-abi/abi-examples.html#mangling
|
||||
int main()
|
||||
{
|
||||
using namespace __gnu_cxx_test;
|
||||
|
||||
// or a global namespace variable "f"
|
||||
/*
|
||||
namespace f
|
||||
{
|
||||
int f;
|
||||
}
|
||||
*/
|
||||
verify_demangle("_ZN1f1fE", "f::f");
|
||||
|
||||
return 0;
|
||||
}
|
37
libstdc++-v3/testsuite/demangle/abi_examples/04.cc
Normal file
37
libstdc++-v3/testsuite/demangle/abi_examples/04.cc
Normal file
@ -0,0 +1,37 @@
|
||||
// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
// Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library 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, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library 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 library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
|
||||
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
// Examples given in the IA64 C++ ABI
|
||||
// http://www.codesourcery.com/cxx-abi/abi-examples.html#mangling
|
||||
int main()
|
||||
{
|
||||
using namespace __gnu_cxx_test;
|
||||
|
||||
// void f() { };
|
||||
// int f() { };
|
||||
// verify_demangle("_Z1fv", "f(void)");
|
||||
verify_demangle("_Z1fv", "f()");
|
||||
|
||||
return 0;
|
||||
}
|
36
libstdc++-v3/testsuite/demangle/abi_examples/05.cc
Normal file
36
libstdc++-v3/testsuite/demangle/abi_examples/05.cc
Normal file
@ -0,0 +1,36 @@
|
||||
// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
// Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library 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, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library 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 library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
|
||||
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
// Examples given in the IA64 C++ ABI
|
||||
// http://www.codesourcery.com/cxx-abi/abi-examples.html#mangling
|
||||
int main()
|
||||
{
|
||||
using namespace __gnu_cxx_test;
|
||||
|
||||
// void f(int) { };
|
||||
// int f(int) { };
|
||||
verify_demangle("_Z1fi", "f(int)");
|
||||
|
||||
return 0;
|
||||
}
|
36
libstdc++-v3/testsuite/demangle/abi_examples/06.cc
Normal file
36
libstdc++-v3/testsuite/demangle/abi_examples/06.cc
Normal file
@ -0,0 +1,36 @@
|
||||
// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
// Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library 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, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library 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 library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
|
||||
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
// Examples given in the IA64 C++ ABI
|
||||
// http://www.codesourcery.com/cxx-abi/abi-examples.html#mangling
|
||||
int main()
|
||||
{
|
||||
using namespace __gnu_cxx_test;
|
||||
|
||||
// class bar { };
|
||||
// void foo(bar) { };
|
||||
verify_demangle("_Z3foo3bar", "foo(bar)");
|
||||
|
||||
return 0;
|
||||
}
|
36
libstdc++-v3/testsuite/demangle/abi_examples/07.cc
Normal file
36
libstdc++-v3/testsuite/demangle/abi_examples/07.cc
Normal file
@ -0,0 +1,36 @@
|
||||
// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
// Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library 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, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library 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 library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
|
||||
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
// Examples given in the IA64 C++ ABI
|
||||
// http://www.codesourcery.com/cxx-abi/abi-examples.html#mangling
|
||||
int main()
|
||||
{
|
||||
using namespace __gnu_cxx_test;
|
||||
|
||||
// class X { };
|
||||
// int operator%(X, X) { };
|
||||
verify_demangle("_Zrm1XS_", "operator%(X, X)");
|
||||
|
||||
return 0;
|
||||
}
|
35
libstdc++-v3/testsuite/demangle/abi_examples/08.cc
Normal file
35
libstdc++-v3/testsuite/demangle/abi_examples/08.cc
Normal file
@ -0,0 +1,35 @@
|
||||
// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
// Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library 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, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library 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 library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
|
||||
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
// Examples given in the IA64 C++ ABI
|
||||
// http://www.codesourcery.com/cxx-abi/abi-examples.html#mangling
|
||||
int main()
|
||||
{
|
||||
using namespace __gnu_cxx_test;
|
||||
|
||||
// int operator+(X&, X&) { };
|
||||
verify_demangle("_ZplR1XS0_", "operator+(X&, X&)"); // XXX
|
||||
|
||||
return 0;
|
||||
}
|
35
libstdc++-v3/testsuite/demangle/abi_examples/09.cc
Normal file
35
libstdc++-v3/testsuite/demangle/abi_examples/09.cc
Normal file
@ -0,0 +1,35 @@
|
||||
// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
// Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library 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, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library 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 library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
|
||||
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
// Examples given in the IA64 C++ ABI
|
||||
// http://www.codesourcery.com/cxx-abi/abi-examples.html#mangling
|
||||
int main()
|
||||
{
|
||||
using namespace __gnu_cxx_test;
|
||||
|
||||
// int operator<< (X const&, X const&) { };
|
||||
verify_demangle("_ZlsRK1XS1_", "operator<<(X const&, X const&)");
|
||||
|
||||
return 0;
|
||||
}
|
40
libstdc++-v3/testsuite/demangle/abi_examples/10.cc
Normal file
40
libstdc++-v3/testsuite/demangle/abi_examples/10.cc
Normal file
@ -0,0 +1,40 @@
|
||||
// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
// Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library 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, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library 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 library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
|
||||
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
// Examples given in the IA64 C++ ABI
|
||||
// http://www.codesourcery.com/cxx-abi/abi-examples.html#mangling
|
||||
int main()
|
||||
{
|
||||
using namespace __gnu_cxx_test;
|
||||
|
||||
/*
|
||||
template<typename T>
|
||||
class Foo
|
||||
{ static int bar; };
|
||||
int Foo<int[4]>::bar;
|
||||
*/
|
||||
verify_demangle("_ZN3FooIA4_iE3barE", "Foo<int[4]>::bar");
|
||||
|
||||
return 0;
|
||||
}
|
38
libstdc++-v3/testsuite/demangle/abi_examples/11.cc
Normal file
38
libstdc++-v3/testsuite/demangle/abi_examples/11.cc
Normal file
@ -0,0 +1,38 @@
|
||||
// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
// Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library 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, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library 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 library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
|
||||
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
// Examples given in the IA64 C++ ABI
|
||||
// http://www.codesourcery.com/cxx-abi/abi-examples.html#mangling
|
||||
int main()
|
||||
{
|
||||
using namespace __gnu_cxx_test;
|
||||
|
||||
// template<typename T> void f(int) { }
|
||||
// template void f<int>(int);
|
||||
// NB: the return type is always explicitly encoded for template
|
||||
// functions taking parameters.
|
||||
verify_demangle("_Z1fIiEvi", "void f<int>(int)");
|
||||
|
||||
return 0;
|
||||
}
|
39
libstdc++-v3/testsuite/demangle/abi_examples/12.cc
Normal file
39
libstdc++-v3/testsuite/demangle/abi_examples/12.cc
Normal file
@ -0,0 +1,39 @@
|
||||
// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
// Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library 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, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library 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 library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
|
||||
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
// Examples given in the IA64 C++ ABI
|
||||
// http://www.codesourcery.com/cxx-abi/abi-examples.html#mangling
|
||||
int main()
|
||||
{
|
||||
using namespace __gnu_cxx_test;
|
||||
|
||||
/*
|
||||
class Duo { };
|
||||
template<typename T> void first(Duo) { }
|
||||
template void first<Duo>(Duo);
|
||||
*/
|
||||
verify_demangle("_Z5firstI3DuoEvS0_", "void first<Duo>(Duo)");
|
||||
|
||||
return 0;
|
||||
}
|
39
libstdc++-v3/testsuite/demangle/abi_examples/13.cc
Normal file
39
libstdc++-v3/testsuite/demangle/abi_examples/13.cc
Normal file
@ -0,0 +1,39 @@
|
||||
// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
// Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library 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, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library 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 library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
|
||||
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
// Examples given in the IA64 C++ ABI
|
||||
// http://www.codesourcery.com/cxx-abi/abi-examples.html#mangling
|
||||
int main()
|
||||
{
|
||||
using namespace __gnu_cxx_test;
|
||||
|
||||
/*
|
||||
class Duo { };
|
||||
template<typename T> void first(T obj) { }
|
||||
template void first(Duo);
|
||||
*/
|
||||
verify_demangle("_Z5firstI3DuoEvT_", "void first<Duo>(Duo)");
|
||||
|
||||
return 0;
|
||||
}
|
40
libstdc++-v3/testsuite/demangle/abi_examples/14.cc
Normal file
40
libstdc++-v3/testsuite/demangle/abi_examples/14.cc
Normal file
@ -0,0 +1,40 @@
|
||||
// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
// Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library 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, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library 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 library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
|
||||
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
// Examples given in the IA64 C++ ABI
|
||||
// http://www.codesourcery.com/cxx-abi/abi-examples.html#mangling
|
||||
int main()
|
||||
{
|
||||
using namespace __gnu_cxx_test;
|
||||
|
||||
/*
|
||||
typedef void fun(double);
|
||||
template<typename I, typename T, typename J> void foo() { }
|
||||
template void foo<int, fun, int>();
|
||||
*/
|
||||
//demangle("_Z3fooIiPFidEiEvv", "void foo<int, int (*)(double), int>(void)");
|
||||
verify_demangle("_Z3fooIiFvdEiEvv", "void foo<int, void ()(double), int>()");
|
||||
|
||||
return 0;
|
||||
}
|
40
libstdc++-v3/testsuite/demangle/abi_examples/15.cc
Normal file
40
libstdc++-v3/testsuite/demangle/abi_examples/15.cc
Normal file
@ -0,0 +1,40 @@
|
||||
// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
// Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library 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, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library 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 library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
|
||||
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
// Examples given in the IA64 C++ ABI
|
||||
// http://www.codesourcery.com/cxx-abi/abi-examples.html#mangling
|
||||
int main()
|
||||
{
|
||||
using namespace __gnu_cxx_test;
|
||||
|
||||
/*
|
||||
namespace N
|
||||
{
|
||||
int f;
|
||||
}
|
||||
*/
|
||||
verify_demangle("_ZN1N1fE", "N::f");
|
||||
|
||||
return 0;
|
||||
}
|
46
libstdc++-v3/testsuite/demangle/abi_examples/16.cc
Normal file
46
libstdc++-v3/testsuite/demangle/abi_examples/16.cc
Normal file
@ -0,0 +1,46 @@
|
||||
// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
// Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library 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, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library 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 library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
|
||||
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
// Examples given in the IA64 C++ ABI
|
||||
// http://www.codesourcery.com/cxx-abi/abi-examples.html#mangling
|
||||
int main()
|
||||
{
|
||||
using namespace __gnu_cxx_test;
|
||||
|
||||
/*
|
||||
namespace System
|
||||
{
|
||||
struct Sound
|
||||
{
|
||||
int beep();
|
||||
};
|
||||
|
||||
int Sound::beep() { };
|
||||
}
|
||||
*/
|
||||
// verify_demangle("_ZN6System5Sound4beepEv", "System::Sound::beep(void)");
|
||||
verify_demangle("_ZN6System5Sound4beepEv", "System::Sound::beep()");
|
||||
|
||||
return 0;
|
||||
}
|
40
libstdc++-v3/testsuite/demangle/abi_examples/17.cc
Normal file
40
libstdc++-v3/testsuite/demangle/abi_examples/17.cc
Normal file
@ -0,0 +1,40 @@
|
||||
// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
// Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library 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, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library 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 library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
|
||||
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
// Examples given in the IA64 C++ ABI
|
||||
// http://www.codesourcery.com/cxx-abi/abi-examples.html#mangling
|
||||
int main()
|
||||
{
|
||||
using namespace __gnu_cxx_test;
|
||||
|
||||
/*
|
||||
namespace Arena
|
||||
{
|
||||
int level;
|
||||
}
|
||||
*/
|
||||
verify_demangle("_ZN5Arena5levelE", "Arena::level");
|
||||
|
||||
return 0;
|
||||
}
|
42
libstdc++-v3/testsuite/demangle/abi_examples/18.cc
Normal file
42
libstdc++-v3/testsuite/demangle/abi_examples/18.cc
Normal file
@ -0,0 +1,42 @@
|
||||
// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
// Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library 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, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library 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 library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
|
||||
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
// Examples given in the IA64 C++ ABI
|
||||
// http://www.codesourcery.com/cxx-abi/abi-examples.html#mangling
|
||||
int main()
|
||||
{
|
||||
using namespace __gnu_cxx_test;
|
||||
|
||||
/*
|
||||
template<typename T1, typename T2> struct Stack
|
||||
{
|
||||
static int level;
|
||||
int return_level() { return level; }
|
||||
};
|
||||
template struct Stack<int, int>;
|
||||
*/
|
||||
verify_demangle("_ZN5StackIiiE5levelE", "Stack<int, int>::level");
|
||||
|
||||
return 0;
|
||||
}
|
34
libstdc++-v3/testsuite/demangle/abi_examples/19.cc
Normal file
34
libstdc++-v3/testsuite/demangle/abi_examples/19.cc
Normal file
@ -0,0 +1,34 @@
|
||||
// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
// Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library 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, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library 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 library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
|
||||
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
// Examples given in the IA64 C++ ABI
|
||||
// http://www.codesourcery.com/cxx-abi/abi-examples.html#mangling
|
||||
int main()
|
||||
{
|
||||
using namespace __gnu_cxx_test;
|
||||
|
||||
verify_demangle("_Z1fI1XEvPVN1AIT_E1TE", "void f<X>(A<X>::T volatile*)");
|
||||
|
||||
return 0;
|
||||
}
|
35
libstdc++-v3/testsuite/demangle/abi_examples/20.cc
Normal file
35
libstdc++-v3/testsuite/demangle/abi_examples/20.cc
Normal file
@ -0,0 +1,35 @@
|
||||
// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
// Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library 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, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library 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 library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
|
||||
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
// Examples given in the IA64 C++ ABI
|
||||
// http://www.codesourcery.com/cxx-abi/abi-examples.html#mangling
|
||||
int main()
|
||||
{
|
||||
using namespace __gnu_cxx_test;
|
||||
|
||||
verify_demangle("_ZngILi42EEvN1AIXplT_Li2EEE1TE",
|
||||
"void operator-<42>(A<(42) + (2)>::T)");
|
||||
|
||||
return 0;
|
||||
}
|
35
libstdc++-v3/testsuite/demangle/abi_examples/21.cc
Normal file
35
libstdc++-v3/testsuite/demangle/abi_examples/21.cc
Normal file
@ -0,0 +1,35 @@
|
||||
// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
// Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library 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, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library 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 library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
|
||||
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
// Examples given in the IA64 C++ ABI
|
||||
// http://www.codesourcery.com/cxx-abi/abi-examples.html#mangling
|
||||
int main()
|
||||
{
|
||||
using namespace __gnu_cxx_test;
|
||||
|
||||
verify_demangle("_Z4makeI7FactoryiET_IT0_Ev",
|
||||
"Factory<int> make<Factory, int>()");
|
||||
|
||||
return 0;
|
||||
}
|
35
libstdc++-v3/testsuite/demangle/abi_examples/22.cc
Normal file
35
libstdc++-v3/testsuite/demangle/abi_examples/22.cc
Normal file
@ -0,0 +1,35 @@
|
||||
// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
// Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library 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, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library 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 library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
|
||||
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
// Examples given in the IA64 C++ ABI
|
||||
// http://www.codesourcery.com/cxx-abi/abi-examples.html#mangling
|
||||
int main()
|
||||
{
|
||||
using namespace __gnu_cxx_test;
|
||||
|
||||
verify_demangle("_Z4makeI7FactoryiET_IT0_Ev",
|
||||
"Factory<int> make<Factory, int>()");
|
||||
|
||||
return 0;
|
||||
}
|
34
libstdc++-v3/testsuite/demangle/abi_examples/23.cc
Normal file
34
libstdc++-v3/testsuite/demangle/abi_examples/23.cc
Normal file
@ -0,0 +1,34 @@
|
||||
// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
// Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library 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, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library 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 library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
|
||||
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
// Examples given in the IA64 C++ ABI
|
||||
// http://www.codesourcery.com/cxx-abi/abi-examples.html#mangling
|
||||
int main()
|
||||
{
|
||||
using namespace __gnu_cxx_test;
|
||||
|
||||
verify_demangle("_Z3foo5Hello5WorldS0_S_",
|
||||
"foo(Hello, World, World, Hello)");
|
||||
return 0;
|
||||
}
|
34
libstdc++-v3/testsuite/demangle/abi_examples/24.cc
Normal file
34
libstdc++-v3/testsuite/demangle/abi_examples/24.cc
Normal file
@ -0,0 +1,34 @@
|
||||
// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
// Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library 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, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library 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 library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
|
||||
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
// Examples given in the IA64 C++ ABI
|
||||
// http://www.codesourcery.com/cxx-abi/abi-examples.html#mangling
|
||||
int main()
|
||||
{
|
||||
using namespace __gnu_cxx_test;
|
||||
|
||||
verify_demangle("_Z3fooPM2ABi", "foo(int AB::**)");
|
||||
|
||||
return 0;
|
||||
}
|
39
libstdc++-v3/testsuite/demangle/abi_examples/25.cc
Normal file
39
libstdc++-v3/testsuite/demangle/abi_examples/25.cc
Normal file
@ -0,0 +1,39 @@
|
||||
// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
// Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library 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, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library 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 library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
|
||||
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
// Examples given in the IA64 C++ ABI
|
||||
// http://www.codesourcery.com/cxx-abi/abi-examples.html#mangling
|
||||
int main()
|
||||
{
|
||||
using namespace __gnu_cxx_test;
|
||||
|
||||
// Equivalent
|
||||
// uncompressed, cp-dem
|
||||
// verify_demangle("_ZlsRSoRKSs", "operator<<(std::basic_ostream<char, std::char_traits<char> >&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)");
|
||||
// compressed (good!), new __cxa_demangle
|
||||
verify_demangle("_ZlsRSoRKSs",
|
||||
"operator<<(std::ostream&, std::string const&)");
|
||||
|
||||
return 0;
|
||||
}
|
34
libstdc++-v3/testsuite/demangle/abi_examples/26.cc
Normal file
34
libstdc++-v3/testsuite/demangle/abi_examples/26.cc
Normal file
@ -0,0 +1,34 @@
|
||||
// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
// Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library 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, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library 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 library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
|
||||
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
// Examples given in the IA64 C++ ABI
|
||||
// http://www.codesourcery.com/cxx-abi/abi-examples.html#mangling
|
||||
int main()
|
||||
{
|
||||
using namespace __gnu_cxx_test;
|
||||
|
||||
verify_demangle("_ZTI7a_class", "typeinfo for a_class");
|
||||
|
||||
return 0;
|
||||
}
|
42
libstdc++-v3/testsuite/demangle/abi_text/01.cc
Normal file
42
libstdc++-v3/testsuite/demangle/abi_text/01.cc
Normal file
@ -0,0 +1,42 @@
|
||||
// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
// Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library 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, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library 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 library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
|
||||
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
// Examples given in the IA64 C++ ABI
|
||||
// http://www.codesourcery.com/cxx-abi/abi-examples.html#mangling
|
||||
int main()
|
||||
{
|
||||
using namespace __gnu_cxx_test;
|
||||
|
||||
// 5.1.5 Type encodings.
|
||||
// int* volatile const restrict _far p;
|
||||
// cplus-dem FAIL
|
||||
// icc CORE
|
||||
// Equivalent as considered order-insensitive.
|
||||
// standard text
|
||||
// verify_demangle("U4_farrVKPi", "int* volatile const restrict _far");
|
||||
// new __cxa_demangle
|
||||
verify_demangle("U4_farrVKPi", "int* restrict volatile const _far");
|
||||
|
||||
return 0;
|
||||
}
|
42
libstdc++-v3/testsuite/demangle/abi_text/02.cc
Normal file
42
libstdc++-v3/testsuite/demangle/abi_text/02.cc
Normal file
@ -0,0 +1,42 @@
|
||||
// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
// Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library 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, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library 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 library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
|
||||
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
// Specific examples mentioned in the IA64 C++ ABI text
|
||||
// http://www.codesourcery.com/cxx-abi/abi.html#mangling
|
||||
int main()
|
||||
{
|
||||
using namespace __gnu_cxx_test;
|
||||
|
||||
// template<int I> void foo (int (&)[I + 1]) { };
|
||||
// template void foo<2> (int (&)[3]);
|
||||
// Equivalent, but formatting difference in void argument and parentheses.
|
||||
// icc, __cxa_demangle
|
||||
verify_demangle("_Z3fooILi2EEvRAplT_Li1E_i",
|
||||
"void foo<2>(int (&) [(2) + (1)])");
|
||||
// cplus-dem
|
||||
// verify_demangle("_Z3fooILi2EEvRAplT_Li1E_i",
|
||||
// "void foo<(int)2>(int (&) [((int)2)+((int)1)])");
|
||||
|
||||
return 0;
|
||||
}
|
39
libstdc++-v3/testsuite/demangle/abi_text/03.cc
Normal file
39
libstdc++-v3/testsuite/demangle/abi_text/03.cc
Normal file
@ -0,0 +1,39 @@
|
||||
// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
// Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library 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, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library 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 library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
|
||||
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
// Specific examples mentioned in the IA64 C++ ABI text
|
||||
// http://www.codesourcery.com/cxx-abi/abi.html#mangling
|
||||
int main()
|
||||
{
|
||||
using namespace __gnu_cxx_test;
|
||||
|
||||
// struct A;
|
||||
// void f (void (A::*)() const) {}
|
||||
// cplus-dem FAIL
|
||||
// Equivalent, but formatting difference in void argument.
|
||||
verify_demangle("_Z1fM1AKFvvE", "f(void (A::*)() const)");
|
||||
// verify_demangle("_Z1fM1AKFvvE", "f(void (A::*)(void) const)");
|
||||
|
||||
return 0;
|
||||
}
|
35
libstdc++-v3/testsuite/demangle/abi_text/04.cc
Normal file
35
libstdc++-v3/testsuite/demangle/abi_text/04.cc
Normal file
@ -0,0 +1,35 @@
|
||||
// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
// Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library 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, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library 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 library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
|
||||
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
// Specific examples mentioned in the IA64 C++ ABI text
|
||||
// http://www.codesourcery.com/cxx-abi/abi.html#mangling
|
||||
int main()
|
||||
{
|
||||
using namespace __gnu_cxx_test;
|
||||
|
||||
// void foo(char);
|
||||
verify_demangle("_Z3fooc", "foo(char)");
|
||||
|
||||
return 0;
|
||||
}
|
39
libstdc++-v3/testsuite/demangle/abi_text/05.cc
Normal file
39
libstdc++-v3/testsuite/demangle/abi_text/05.cc
Normal file
@ -0,0 +1,39 @@
|
||||
// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
// Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library 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, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library 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 library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
|
||||
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
// Specific examples mentioned in the IA64 C++ ABI text
|
||||
// http://www.codesourcery.com/cxx-abi/abi.html#mangling
|
||||
int main()
|
||||
{
|
||||
using namespace __gnu_cxx_test;
|
||||
|
||||
// void foo(char);
|
||||
// template<void (&)(char)> struct CB { };
|
||||
// CB<foo> obj;
|
||||
// cplus-dem FAIL
|
||||
// standard text FAIL "CB<foo>"
|
||||
verify_demangle("2CBIL_Z3foocEE", "CB<foo(char)>");
|
||||
|
||||
return 0;
|
||||
}
|
38
libstdc++-v3/testsuite/demangle/abi_text/06.cc
Normal file
38
libstdc++-v3/testsuite/demangle/abi_text/06.cc
Normal file
@ -0,0 +1,38 @@
|
||||
// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
// Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library 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, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library 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 library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
|
||||
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
// Specific examples mentioned in the IA64 C++ ABI text
|
||||
// http://www.codesourcery.com/cxx-abi/abi.html#mangling
|
||||
int main()
|
||||
{
|
||||
using namespace __gnu_cxx_test;
|
||||
|
||||
// extern "C" bool IsEmpty(char *);
|
||||
// template<void (&)(char *)> struct CB;
|
||||
// CB<IsEmpty> is mangled as
|
||||
// cplus-dem FAIL
|
||||
verify_demangle("2CBIL_Z7IsEmptyEE", "CB<IsEmpty>");
|
||||
|
||||
return 0;
|
||||
}
|
53
libstdc++-v3/testsuite/demangle/abi_text/07.cc
Normal file
53
libstdc++-v3/testsuite/demangle/abi_text/07.cc
Normal file
@ -0,0 +1,53 @@
|
||||
// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
// Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library 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, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library 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 library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
|
||||
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
// Specific examples mentioned in the IA64 C++ ABI text
|
||||
// http://www.codesourcery.com/cxx-abi/abi.html#mangling
|
||||
int main()
|
||||
{
|
||||
using namespace __gnu_cxx_test;
|
||||
|
||||
// 5.1.6 Scope Encoding
|
||||
/*
|
||||
namespace N
|
||||
{
|
||||
inline char*
|
||||
f(int i)
|
||||
{
|
||||
static char *p = "Itanium C++ ABI"; // p = 1, "..." = 2
|
||||
{
|
||||
struct X
|
||||
{ // X = 3
|
||||
void g() {}
|
||||
};
|
||||
}
|
||||
return p[i];
|
||||
}
|
||||
}
|
||||
*/
|
||||
// encoding of N::f::p (first local mangled entity)
|
||||
verify_demangle("_ZZN1N1fEiE1p", "N::f(int)::p");
|
||||
|
||||
return 0;
|
||||
}
|
35
libstdc++-v3/testsuite/demangle/abi_text/08.cc
Normal file
35
libstdc++-v3/testsuite/demangle/abi_text/08.cc
Normal file
@ -0,0 +1,35 @@
|
||||
// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
// Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library 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, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library 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 library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
|
||||
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
// Specific examples mentioned in the IA64 C++ ABI text
|
||||
// http://www.codesourcery.com/cxx-abi/abi.html#mangling
|
||||
int main()
|
||||
{
|
||||
using namespace __gnu_cxx_test;
|
||||
|
||||
// encoding of N::f::"Itanium C++ ABI" (no discriminator)
|
||||
verify_demangle("_ZZN1N1fEiEs", "N::f(int)::string literal");
|
||||
|
||||
return 0;
|
||||
}
|
37
libstdc++-v3/testsuite/demangle/abi_text/09.cc
Normal file
37
libstdc++-v3/testsuite/demangle/abi_text/09.cc
Normal file
@ -0,0 +1,37 @@
|
||||
// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
// Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library 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, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library 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 library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
|
||||
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
// Specific examples mentioned in the IA64 C++ ABI text
|
||||
// http://www.codesourcery.com/cxx-abi/abi.html#mangling
|
||||
int main()
|
||||
{
|
||||
using namespace __gnu_cxx_test;
|
||||
|
||||
// encoding of N::f::X::g()
|
||||
// (third local mangled entity used as a class-qualifier)
|
||||
// cplus-dem FAIL
|
||||
// icc CORE
|
||||
verify_demangle("_ZNZN1N1fEiE1X1gE", "error code = -2: invalid mangled name");
|
||||
return 0;
|
||||
}
|
35
libstdc++-v3/testsuite/demangle/abi_text/10.cc
Normal file
35
libstdc++-v3/testsuite/demangle/abi_text/10.cc
Normal file
@ -0,0 +1,35 @@
|
||||
// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
// Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library 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, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library 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 library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
|
||||
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
// Specific examples mentioned in the IA64 C++ ABI text
|
||||
// http://www.codesourcery.com/cxx-abi/abi.html#mangling
|
||||
int main()
|
||||
{
|
||||
using namespace __gnu_cxx_test;
|
||||
|
||||
verify_demangle("_ZNZN1N1fEiE1X1gEv",
|
||||
"error code = -2: invalid mangled name");
|
||||
|
||||
return 0;
|
||||
}
|
42
libstdc++-v3/testsuite/demangle/abi_text/11.cc
Normal file
42
libstdc++-v3/testsuite/demangle/abi_text/11.cc
Normal file
@ -0,0 +1,42 @@
|
||||
// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
// Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library 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, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library 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 library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
|
||||
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
// Specific examples mentioned in the IA64 C++ ABI text
|
||||
// http://www.codesourcery.com/cxx-abi/abi.html#mangling
|
||||
int main()
|
||||
{
|
||||
using namespace __gnu_cxx_test;
|
||||
|
||||
// 5.1.7 Compression.
|
||||
// typedef void T();
|
||||
// struct S {};
|
||||
// void f(T*, T (S::*)) { }
|
||||
// Equivalent, void variance.
|
||||
// standard text, not possible
|
||||
// verify_demangle("_Z1fPFvvEM1SFvvE", "void f(T*, T (S::*))");
|
||||
verify_demangle("_Z1fPFvvEM1SFvvE", "f(void (*)(), void (S::*)())");
|
||||
// demangle("_Z1fPFvvEM1SFvvE", "f(void (*)(void), void (S::*)(void))");
|
||||
|
||||
return 0;
|
||||
}
|
36
libstdc++-v3/testsuite/demangle/abi_text/12.cc
Normal file
36
libstdc++-v3/testsuite/demangle/abi_text/12.cc
Normal file
@ -0,0 +1,36 @@
|
||||
// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
// Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library 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, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library 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 library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
|
||||
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
// Specific examples mentioned in the IA64 C++ ABI text
|
||||
// http://www.codesourcery.com/cxx-abi/abi.html#mangling
|
||||
int main()
|
||||
{
|
||||
using namespace __gnu_cxx_test;
|
||||
|
||||
// N::T<int, int>::mf(N::T<double, double>)
|
||||
verify_demangle("_ZN1N1TIiiE2mfES0_IddE",
|
||||
"N::T<int, int>::mf(N::T<double, double>)");
|
||||
|
||||
return 0;
|
||||
}
|
35
libstdc++-v3/testsuite/demangle/abi_text/13.cc
Normal file
35
libstdc++-v3/testsuite/demangle/abi_text/13.cc
Normal file
@ -0,0 +1,35 @@
|
||||
// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
// Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library 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, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library 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 library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
|
||||
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
// Specific examples mentioned in the IA64 C++ ABI text
|
||||
// http://www.codesourcery.com/cxx-abi/abi.html#mangling
|
||||
int main()
|
||||
{
|
||||
using namespace __gnu_cxx_test;
|
||||
|
||||
// std::state
|
||||
verify_demangle("_ZSt5state", "std::state");
|
||||
|
||||
return 0;
|
||||
}
|
35
libstdc++-v3/testsuite/demangle/abi_text/14.cc
Normal file
35
libstdc++-v3/testsuite/demangle/abi_text/14.cc
Normal file
@ -0,0 +1,35 @@
|
||||
// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
// Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library 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, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library 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 library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
|
||||
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
// Specific examples mentioned in the IA64 C++ ABI text
|
||||
// http://www.codesourcery.com/cxx-abi/abi.html#mangling
|
||||
int main()
|
||||
{
|
||||
using namespace __gnu_cxx_test;
|
||||
|
||||
// std::_In::ward
|
||||
verify_demangle("_ZNSt3_In4wardE", "std::_In::ward");
|
||||
|
||||
return 0;
|
||||
}
|
33
libstdc++-v3/testsuite/demangle/regression/3111-1.cc
Normal file
33
libstdc++-v3/testsuite/demangle/regression/3111-1.cc
Normal file
@ -0,0 +1,33 @@
|
||||
// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
// Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library 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, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library 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 library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
|
||||
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
// c++/3111
|
||||
int main()
|
||||
{
|
||||
using namespace __gnu_cxx_test;
|
||||
|
||||
verify_demangle("_Z1fKPFiiE", "f(int (* const)(int))");
|
||||
|
||||
return 0;
|
||||
}
|
38
libstdc++-v3/testsuite/demangle/regression/3111-2.cc
Normal file
38
libstdc++-v3/testsuite/demangle/regression/3111-2.cc
Normal file
@ -0,0 +1,38 @@
|
||||
// 2003-02-26 Carlo Wood <carlo@alinoe.com>
|
||||
|
||||
// Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library 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, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library 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 library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
|
||||
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
// c++/3111
|
||||
int main()
|
||||
{
|
||||
using namespace __gnu_cxx_test;
|
||||
|
||||
// cplus-dem FAIL
|
||||
// icc FAIL
|
||||
// verify_demangle("_Z1fAszL_ZZNK1N1A1fEvE3foo_0E_i",
|
||||
// "f(int[sizeof(N::A::f() const::foo())])");
|
||||
verify_demangle("_Z1fAszL_ZZNK1N1A1fEvE3foo_0E_i",
|
||||
"f(int[sizeof(N::A::f() const::foo)])");
|
||||
|
||||
return 0;
|
||||
}
|
33
libstdc++-v3/testsuite/demangle/regression/7986-01.cc
Normal file
33
libstdc++-v3/testsuite/demangle/regression/7986-01.cc
Normal file
@ -0,0 +1,33 @@
|
||||
// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
// Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library 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, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library 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 library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
|
||||
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
// libstdc++/7986
|
||||
int main()
|
||||
{
|
||||
using namespace __gnu_cxx_test;
|
||||
// cplus-dem FAIL
|
||||
verify_demangle("_Z1fA37_iPS_", "f(int[37], int (*) [37])");
|
||||
|
||||
return 0;
|
||||
}
|
35
libstdc++-v3/testsuite/demangle/regression/7986-02.cc
Normal file
35
libstdc++-v3/testsuite/demangle/regression/7986-02.cc
Normal file
@ -0,0 +1,35 @@
|
||||
// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
// Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library 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, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library 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 library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
|
||||
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
// libstdc++/7986
|
||||
int main()
|
||||
{
|
||||
using namespace __gnu_cxx_test;
|
||||
|
||||
// Equivalent, but formatting difference in void argument.
|
||||
// verify_demangle("_Z1fM1AFivEPS0_", "f(int (A::*)(void), int (*)(void))");
|
||||
verify_demangle("_Z1fM1AFivEPS0_", "f(int (A::*)(), int (*)())");
|
||||
|
||||
return 0;
|
||||
}
|
34
libstdc++-v3/testsuite/demangle/regression/7986-03.cc
Normal file
34
libstdc++-v3/testsuite/demangle/regression/7986-03.cc
Normal file
@ -0,0 +1,34 @@
|
||||
// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
// Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library 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, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library 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 library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
|
||||
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
// libstdc++/7986
|
||||
int main()
|
||||
{
|
||||
using namespace __gnu_cxx_test;
|
||||
|
||||
// cplus-dem FAIL
|
||||
verify_demangle("_Z1fPFPA1_ivE", "f(int (*(*)()) [1])");
|
||||
|
||||
return 0;
|
||||
}
|
34
libstdc++-v3/testsuite/demangle/regression/7986-04.cc
Normal file
34
libstdc++-v3/testsuite/demangle/regression/7986-04.cc
Normal file
@ -0,0 +1,34 @@
|
||||
// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
// Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library 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, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library 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 library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
|
||||
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
// libstdc++/7986
|
||||
int main()
|
||||
{
|
||||
using namespace __gnu_cxx_test;
|
||||
|
||||
// cplus-dem FAIL
|
||||
verify_demangle("_Z1fPKM1AFivE", "f(int (A::* const*)())");
|
||||
|
||||
return 0;
|
||||
}
|
34
libstdc++-v3/testsuite/demangle/regression/7986-05.cc
Normal file
34
libstdc++-v3/testsuite/demangle/regression/7986-05.cc
Normal file
@ -0,0 +1,34 @@
|
||||
// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
// Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library 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, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library 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 library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
|
||||
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
// libstdc++/7986
|
||||
int main()
|
||||
{
|
||||
using namespace __gnu_cxx_test;
|
||||
|
||||
// cplus-dem FAIL
|
||||
verify_demangle("_Z1jM1AFivEPS1_", "j(int (A::*)(), int (A::**)())");
|
||||
|
||||
return 0;
|
||||
}
|
34
libstdc++-v3/testsuite/demangle/regression/7986-06.cc
Normal file
34
libstdc++-v3/testsuite/demangle/regression/7986-06.cc
Normal file
@ -0,0 +1,34 @@
|
||||
// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
// Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library 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, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library 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 library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
|
||||
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
// libstdc++/7986
|
||||
int main()
|
||||
{
|
||||
using namespace __gnu_cxx_test;
|
||||
|
||||
// cplus-dem FAIL
|
||||
verify_demangle("_Z1sPA37_iPS0_", "s(int (*) [37], int (**) [37])");
|
||||
|
||||
return 0;
|
||||
}
|
35
libstdc++-v3/testsuite/demangle/regression/7986-07.cc
Normal file
35
libstdc++-v3/testsuite/demangle/regression/7986-07.cc
Normal file
@ -0,0 +1,35 @@
|
||||
// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
// Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library 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, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library 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 library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
|
||||
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
// libstdc++/7986
|
||||
int main()
|
||||
{
|
||||
using namespace __gnu_cxx_test;
|
||||
|
||||
// cplus-dem FAIL
|
||||
verify_demangle("_Z3fooA30_A_i", "foo(int[30][])");
|
||||
|
||||
|
||||
return 0;
|
||||
}
|
34
libstdc++-v3/testsuite/demangle/regression/7986-08.cc
Normal file
34
libstdc++-v3/testsuite/demangle/regression/7986-08.cc
Normal file
@ -0,0 +1,34 @@
|
||||
// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
// Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library 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, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library 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 library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
|
||||
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
// libstdc++/7986
|
||||
int main()
|
||||
{
|
||||
using namespace __gnu_cxx_test;
|
||||
|
||||
// cplus-dem FAIL
|
||||
verify_demangle("_Z3kooPA28_A30_i", "koo(int (*) [28][30])");
|
||||
|
||||
return 0;
|
||||
}
|
40
libstdc++-v3/testsuite/demangle/regression/7986-09.cc
Normal file
40
libstdc++-v3/testsuite/demangle/regression/7986-09.cc
Normal file
@ -0,0 +1,40 @@
|
||||
// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
// Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library 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, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library 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 library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
|
||||
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
// libstdc++/7986
|
||||
int main()
|
||||
{
|
||||
using namespace __gnu_cxx_test;
|
||||
|
||||
// cplus-dem FAIL
|
||||
// Equivalent as considered order-insensitive?
|
||||
// standard text, icc FAIL
|
||||
// verify_demangle("_ZlsRKU3fooU4bart1XS0_",
|
||||
// "operator<<(X const foo bart&, X const foo bart)");
|
||||
// new __cxa_demangle
|
||||
verify_demangle("_ZlsRKU3fooU4bart1XS0_",
|
||||
"operator<<(X bart foo const&, X bart)");
|
||||
|
||||
return 0;
|
||||
}
|
34
libstdc++-v3/testsuite/demangle/regression/7986-10.cc
Normal file
34
libstdc++-v3/testsuite/demangle/regression/7986-10.cc
Normal file
@ -0,0 +1,34 @@
|
||||
// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
// Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library 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, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library 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 library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
|
||||
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
// libstdc++/7986
|
||||
int main()
|
||||
{
|
||||
using namespace __gnu_cxx_test;
|
||||
|
||||
verify_demangle("_ZlsRKU3fooU4bart1XS2_",
|
||||
"operator<<(X bart foo const&, X bart foo const)");
|
||||
|
||||
return 0;
|
||||
}
|
34
libstdc++-v3/testsuite/demangle/regression/7986-11.cc
Normal file
34
libstdc++-v3/testsuite/demangle/regression/7986-11.cc
Normal file
@ -0,0 +1,34 @@
|
||||
// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
// Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library 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, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library 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 library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
|
||||
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
// libstdc++/7986
|
||||
int main()
|
||||
{
|
||||
using namespace __gnu_cxx_test;
|
||||
|
||||
// cplus-dem FAIL
|
||||
verify_demangle("_Z1fM1AKFivE", "f(int (A::*)() const)");
|
||||
|
||||
return 0;
|
||||
}
|
47
libstdc++-v3/testsuite/demangle/regression/7986-12.cc
Normal file
47
libstdc++-v3/testsuite/demangle/regression/7986-12.cc
Normal file
@ -0,0 +1,47 @@
|
||||
// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
// Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library 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, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library 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 library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
|
||||
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
// libstdc++/7986
|
||||
int main()
|
||||
{
|
||||
using namespace __gnu_cxx_test;
|
||||
|
||||
// ICE on figmative float template parameters?
|
||||
/*
|
||||
demangle("_Z3absILd1c1f1496f8a44219EEvv", "void abs<3.14159e-173>()");
|
||||
demangle("_Z3absILd40092acd9e83e426EEvv", "void abs<3.1459>()");
|
||||
demangl("_Z3absILe08042191a6cc56a2fe117becEEvv", "void abs<1.234e-2345l>()");
|
||||
demangle("_Z3absILf4016147bEEvv", "void abs<2.345f>()");
|
||||
demangle("_Z3absILfc1800000EEvv", " void abs<-16f>()");
|
||||
demangle("_Z3absILe804bfff8000000000000000EEvv", "void abs<-1l>()");
|
||||
*/
|
||||
|
||||
// template<int D> void abs(void) { };
|
||||
// template void abs<11>(void);
|
||||
// Equivalent, but formatting difference in void argument.
|
||||
// verify_demangle("_Z3absILi11EEvv", "void abs<(int)11>()");
|
||||
verify_demangle("_Z3absILi11EEvv", "void abs<11>()");
|
||||
|
||||
return 0;
|
||||
}
|
32
libstdc++-v3/testsuite/demangle/regression/7986.cc
Normal file
32
libstdc++-v3/testsuite/demangle/regression/7986.cc
Normal file
@ -0,0 +1,32 @@
|
||||
// 2003-02-26 Carlo Wood <carlo@alinoe.com>
|
||||
|
||||
// Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library 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, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library 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 library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
|
||||
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
// libcwd tests
|
||||
int main()
|
||||
{
|
||||
using namespace __gnu_cxx_test;
|
||||
|
||||
|
||||
return 0;
|
||||
}
|
61
libstdc++-v3/testsuite/demangle/regression/8897.cc
Normal file
61
libstdc++-v3/testsuite/demangle/regression/8897.cc
Normal file
@ -0,0 +1,61 @@
|
||||
// 2003-02-26 Martin v. Loewis <martin@v.loewis.de>
|
||||
|
||||
// Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library 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, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library 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 library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
|
||||
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
// c++/8897
|
||||
int main()
|
||||
{
|
||||
using namespace __gnu_cxx_test;
|
||||
|
||||
/*
|
||||
template<typename T1>
|
||||
struct A
|
||||
{
|
||||
template<typename T2>
|
||||
operator T2();
|
||||
};
|
||||
|
||||
A<float> a;
|
||||
(int)a; <-- that function.
|
||||
*/
|
||||
/*
|
||||
Using "operator int()" is ambigious because that
|
||||
could be either:
|
||||
|
||||
operator int();
|
||||
|
||||
or
|
||||
|
||||
template<typename T>
|
||||
operator T();
|
||||
with T = int.
|
||||
|
||||
- Carlo Wood
|
||||
*/
|
||||
// cplus-dem FAIL
|
||||
// icc FAIL
|
||||
// new __cxa_demangle FAIL
|
||||
verify_demangle("_ZN1AIfEcvT_IiEEv", "A<float>::operator int<int>()");
|
||||
|
||||
return 0;
|
||||
}
|
54
libstdc++-v3/testsuite/demangle/regression/cw-01.cc
Normal file
54
libstdc++-v3/testsuite/demangle/regression/cw-01.cc
Normal file
@ -0,0 +1,54 @@
|
||||
// 2003-02-26 Carlo Wood <carlo@alinoe.com>
|
||||
|
||||
// Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library 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, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library 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 library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
|
||||
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
// libcwd tests
|
||||
int main()
|
||||
{
|
||||
using namespace __gnu_cxx_test;
|
||||
|
||||
/*
|
||||
class libcw_app_ct {
|
||||
public:
|
||||
void dummy(char const*) { }
|
||||
template<typename T>
|
||||
static void add_option(void (T::*)(char const*), char const*, char,
|
||||
char const*, char const*);
|
||||
};
|
||||
|
||||
template<typename T>
|
||||
void libcw_app_ct::add_option(void (T::*)(char const*), char const*, char,
|
||||
char const*, char const*)
|
||||
{ }
|
||||
|
||||
void fn(void)
|
||||
{
|
||||
// Instantiation.
|
||||
libcw_app_ct::add_option(&libcw_app_ct::dummy, "", '\0', "", "");
|
||||
}
|
||||
*/
|
||||
verify_demangle("_ZN12libcw_app_ct10add_optionIS_EEvMT_FvPKcES3_cS3_S3_",
|
||||
"void libcw_app_ct::add_option<libcw_app_ct>(void (libcw_app_ct::*)(char const*), char const*, char, char const*, char const*)");
|
||||
|
||||
return 0;
|
||||
}
|
59
libstdc++-v3/testsuite/demangle/regression/cw-02.cc
Normal file
59
libstdc++-v3/testsuite/demangle/regression/cw-02.cc
Normal file
@ -0,0 +1,59 @@
|
||||
// 2003-02-26 Carlo Wood <carlo@alinoe.com>
|
||||
|
||||
// Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library 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, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library 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 library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
|
||||
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
// libcwd tests
|
||||
int main()
|
||||
{
|
||||
using namespace __gnu_cxx_test;
|
||||
|
||||
/*
|
||||
namespace libcw {
|
||||
namespace debug {
|
||||
class memblk_types_manipulator_data_ct { };
|
||||
}
|
||||
template<typename T>
|
||||
class omanip_id_tct { };
|
||||
namespace {
|
||||
template<typename T>
|
||||
class compiler_bug_workaround {
|
||||
public:
|
||||
static std::vector<int> ids;
|
||||
};
|
||||
template<typename T>
|
||||
std::vector<int> compiler_bug_workaround<T>::ids;
|
||||
typedef std::vector<libcw::omanip_id_tct<libcw::debug::memblk_types_manipulator_data_ct> > vector_t;
|
||||
compiler_bug_workaround<vector_t> dummy;
|
||||
}
|
||||
}
|
||||
|
||||
void g(void)
|
||||
{
|
||||
// Instantiation.
|
||||
libcw::dummy.ids.size();
|
||||
}
|
||||
*/
|
||||
verify_demangle("_ZGVN5libcw24_GLOBAL__N_cbll.cc0ZhUKa23compiler_bug_workaroundISt6vectorINS_13omanip_id_tctINS_5debug32memblk_types_manipulator_data_ctEEESaIS6_EEE3idsE", "guard variable for libcw::(anonymous namespace)::compiler_bug_workaround<std::vector<libcw::omanip_id_tct<libcw::debug::memblk_types_manipulator_data_ct>, std::allocator<libcw::omanip_id_tct<libcw::debug::memblk_types_manipulator_data_ct> > > >::ids");
|
||||
|
||||
return 0;
|
||||
}
|
54
libstdc++-v3/testsuite/demangle/regression/cw-03.cc
Normal file
54
libstdc++-v3/testsuite/demangle/regression/cw-03.cc
Normal file
@ -0,0 +1,54 @@
|
||||
// 2003-02-26 Carlo Wood <carlo@alinoe.com>
|
||||
|
||||
// Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library 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, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library 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 library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
|
||||
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
// libcwd tests
|
||||
int main()
|
||||
{
|
||||
using namespace __gnu_cxx_test;
|
||||
|
||||
/*
|
||||
namespace libcw {
|
||||
namespace _private_ {
|
||||
class GlobalObject { public: void dummy(std::ostream&) const; };
|
||||
}
|
||||
namespace debug {
|
||||
template<typename T>
|
||||
class cwprint_using_tct { };
|
||||
template<typename T>
|
||||
cwprint_using_tct<T> cwprint_using(T const&, void (T::*)(std::ostream&) const);
|
||||
}
|
||||
}
|
||||
|
||||
void h(void)
|
||||
{
|
||||
// Instantiation.
|
||||
libcw::_private_::GlobalObject dummy;
|
||||
(void)libcw::debug::cwprint_using(dummy, &libcw::_private_::GlobalObject::dummy);
|
||||
}
|
||||
*/
|
||||
// cplus-dem CORE
|
||||
verify_demangle("_ZN5libcw5debug13cwprint_usingINS_9_private_12GlobalObjectEEENS0_17cwprint_using_tctIT_EERKS5_MS5_KFvRSt7ostreamE", "libcw::debug::cwprint_using_tct<libcw::_private_::GlobalObject> libcw::debug::cwprint_using<libcw::_private_::GlobalObject>(libcw::_private_::GlobalObject const&, void (libcw::_private_::GlobalObject::*)(std::ostream&) const)");
|
||||
|
||||
return 0;
|
||||
}
|
45
libstdc++-v3/testsuite/demangle/regression/cw-04.cc
Normal file
45
libstdc++-v3/testsuite/demangle/regression/cw-04.cc
Normal file
@ -0,0 +1,45 @@
|
||||
// 2003-02-26 Carlo Wood <carlo@alinoe.com>
|
||||
|
||||
// Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library 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, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library 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 library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
|
||||
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
// libcwd tests
|
||||
int main()
|
||||
{
|
||||
using namespace __gnu_cxx_test;
|
||||
|
||||
|
||||
/*
|
||||
class timer_event_request_base_ct { };
|
||||
struct timer_greater { };
|
||||
|
||||
void i(void)
|
||||
{
|
||||
// Instantiation.
|
||||
std::priority_queue<timer_event_request_base_ct*, std::deque<timer_event_request_base_ct*>, timer_greater> dummy;
|
||||
dummy.top();
|
||||
}
|
||||
*/
|
||||
verify_demangle("_ZNKSt14priority_queueIP27timer_event_request_base_ctSt5dequeIS1_SaIS1_EE13timer_greaterE3topEv", "std::priority_queue<timer_event_request_base_ct*, std::deque<timer_event_request_base_ct*, std::allocator<timer_event_request_base_ct*> >, timer_greater>::top() const");
|
||||
|
||||
return 0;
|
||||
}
|
51
libstdc++-v3/testsuite/demangle/regression/cw-05.cc
Normal file
51
libstdc++-v3/testsuite/demangle/regression/cw-05.cc
Normal file
@ -0,0 +1,51 @@
|
||||
// 2003-02-26 Carlo Wood <carlo@alinoe.com>
|
||||
|
||||
// Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library 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, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library 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 library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
|
||||
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
// libcwd tests
|
||||
int main()
|
||||
{
|
||||
using namespace __gnu_cxx_test;
|
||||
|
||||
/*
|
||||
struct memory_block_st { };
|
||||
namespace std {
|
||||
template<typename T, typename R = T const&, typename P = T const*>
|
||||
class _Deque_iterator {
|
||||
public:
|
||||
void operator==(_Deque_iterator const&) const { }
|
||||
};
|
||||
}
|
||||
|
||||
void j(void)
|
||||
{
|
||||
// Instantiation.
|
||||
std::_Deque_iterator<memory_block_st*> dummy;
|
||||
dummy.operator==(dummy);
|
||||
}
|
||||
*/
|
||||
verify_demangle("_ZNKSt15_Deque_iteratorIP15memory_block_stRKS1_PS2_EeqERKS5_",
|
||||
"std::_Deque_iterator<memory_block_st*, memory_block_st* const&, memory_block_st* const*>::operator==(std::_Deque_iterator<memory_block_st*, memory_block_st* const&, memory_block_st* const*> const&) const");
|
||||
|
||||
return 0;
|
||||
}
|
51
libstdc++-v3/testsuite/demangle/regression/cw-06.cc
Normal file
51
libstdc++-v3/testsuite/demangle/regression/cw-06.cc
Normal file
@ -0,0 +1,51 @@
|
||||
// 2003-02-26 Carlo Wood <carlo@alinoe.com>
|
||||
|
||||
// Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library 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, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library 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 library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
|
||||
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
// libcwd tests
|
||||
int main()
|
||||
{
|
||||
using namespace __gnu_cxx_test;
|
||||
|
||||
/*
|
||||
struct option { };
|
||||
namespace std {
|
||||
template<typename T1, typename T2>
|
||||
class __normal_iterator {
|
||||
public:
|
||||
void operator-(__normal_iterator const&) const { }
|
||||
};
|
||||
}
|
||||
|
||||
void k(void)
|
||||
{
|
||||
// Instantiation.
|
||||
std::__normal_iterator<option const*, std::vector<option> > dummy;
|
||||
dummy.operator-(dummy);
|
||||
}
|
||||
*/
|
||||
verify_demangle("_ZNKSt17__normal_iteratorIPK6optionSt6vectorIS0_SaIS0_EEEmiERKS6_",
|
||||
"std::__normal_iterator<option const*, std::vector<option, std::allocator<option> > >::operator-(std::__normal_iterator<option const*, std::vector<option, std::allocator<option> > > const&) const");
|
||||
|
||||
return 0;
|
||||
}
|
62
libstdc++-v3/testsuite/demangle/regression/cw-07.cc
Normal file
62
libstdc++-v3/testsuite/demangle/regression/cw-07.cc
Normal file
@ -0,0 +1,62 @@
|
||||
// 2003-02-26 Carlo Wood <carlo@alinoe.com>
|
||||
|
||||
// Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library 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, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library 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 library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
|
||||
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
// libcwd tests
|
||||
int main()
|
||||
{
|
||||
using namespace __gnu_cxx_test;
|
||||
|
||||
|
||||
/*
|
||||
|
||||
namespace libcw {
|
||||
namespace debug {
|
||||
class no_alloc_checking_allocator { };
|
||||
}
|
||||
}
|
||||
namespace std {
|
||||
template<typename T>
|
||||
class char_traits { };
|
||||
template<typename T, class _Traits, class _Alloc>
|
||||
class basic_string {
|
||||
public:
|
||||
template<typename T2>
|
||||
char* _S_construct(T2, T2, _Alloc const&) { return (char*)0; }
|
||||
};
|
||||
}
|
||||
|
||||
void l(void)
|
||||
{
|
||||
// Instantiation.
|
||||
std::basic_string<char, std::char_traits<char>,
|
||||
libcw::debug::no_alloc_checking_allocator> dummy;
|
||||
char* cp;
|
||||
libcw::debug::no_alloc_checking_allocator alloc;
|
||||
dummy._S_construct(cp, cp, alloc);
|
||||
}
|
||||
*/
|
||||
verify_demangle("_ZNSbIcSt11char_traitsIcEN5libcw5debug27no_alloc_checking_allocatorEE12_S_constructIPcEES6_T_S7_RKS3_", "char* std::basic_string<char, std::char_traits<char>, libcw::debug::no_alloc_checking_allocator>::_S_construct<char*>(char*, char*, libcw::debug::no_alloc_checking_allocator const&)");
|
||||
|
||||
return 0;
|
||||
}
|
54
libstdc++-v3/testsuite/demangle/regression/cw-08.cc
Normal file
54
libstdc++-v3/testsuite/demangle/regression/cw-08.cc
Normal file
@ -0,0 +1,54 @@
|
||||
// 2003-02-26 Carlo Wood <carlo@alinoe.com>
|
||||
|
||||
// Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library 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, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library 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 library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
|
||||
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
// libcwd tests
|
||||
int main()
|
||||
{
|
||||
using namespace __gnu_cxx_test;
|
||||
|
||||
/*
|
||||
class A { };
|
||||
typedef A const* a4_t[4];
|
||||
typedef a4_t* ap4_t;
|
||||
class C {
|
||||
public:
|
||||
ap4_t c;
|
||||
};
|
||||
template<typename T1, typename T2, typename T3>
|
||||
void f(T1, T2, T3, ap4_t, ap4_t (C::*)) { }
|
||||
|
||||
void m(void)
|
||||
{
|
||||
// Instantiation.
|
||||
A a;
|
||||
a4_t a4;
|
||||
f(a, &a, static_cast<A const*>(&a), &a4, &C::c);
|
||||
}
|
||||
*/
|
||||
// Equivalent, spacing differences with icc.
|
||||
// cplus-dem FAIL
|
||||
verify_demangle("_Z1fI1APS0_PKS0_EvT_T0_T1_PA4_S3_M1CS8_", "void f<A, A*, A const*>(A, A*, A const*, A const* (*) [4], A const* (* C::*) [4])");
|
||||
|
||||
return 0;
|
||||
}
|
62
libstdc++-v3/testsuite/demangle/regression/cw-09.cc
Normal file
62
libstdc++-v3/testsuite/demangle/regression/cw-09.cc
Normal file
@ -0,0 +1,62 @@
|
||||
// 2003-02-26 Carlo Wood <carlo@alinoe.com>
|
||||
|
||||
// Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library 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, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library 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 library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
|
||||
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
// libcwd tests
|
||||
int main()
|
||||
{
|
||||
using namespace __gnu_cxx_test;
|
||||
|
||||
|
||||
/*
|
||||
|
||||
void foo(int, int*, int**, int***, int****, int*****, int******, int*******, int********, int*********, int**********, int***********, int************, int*************, int**************, int***************)
|
||||
{
|
||||
}
|
||||
|
||||
void n(void)
|
||||
{
|
||||
int i0;
|
||||
int* i1;
|
||||
int** i2;
|
||||
int*** i3;
|
||||
int**** i4;
|
||||
int***** i5;
|
||||
int****** i6;
|
||||
int******* i7;
|
||||
int******** i8;
|
||||
int********* i9;
|
||||
int********** i10;
|
||||
int*********** i11;
|
||||
int************ i12;
|
||||
int************* i13;
|
||||
int************** i14;
|
||||
int*************** i15;
|
||||
foo(i0, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15);
|
||||
}
|
||||
*/
|
||||
// cplus-dem FAIL
|
||||
verify_demangle("_Z3fooiPiPS_PS0_PS1_PS2_PS3_PS4_PS5_PS6_PS7_PS8_PS9_PSA_PSB_PSC_", "foo(int, int*, int**, int***, int****, int*****, int******, int*******, int********, int*********, int**********, int***********, int************, int*************, int**************, int***************)");
|
||||
|
||||
return 0;
|
||||
}
|
52
libstdc++-v3/testsuite/demangle/regression/cw-10.cc
Normal file
52
libstdc++-v3/testsuite/demangle/regression/cw-10.cc
Normal file
@ -0,0 +1,52 @@
|
||||
// 2003-02-26 Carlo Wood <carlo@alinoe.com>
|
||||
|
||||
// Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library 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, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library 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 library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
|
||||
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
// libcwd tests
|
||||
int main()
|
||||
{
|
||||
using namespace __gnu_cxx_test;
|
||||
|
||||
|
||||
/*
|
||||
|
||||
namespace std {
|
||||
template<typename T1, typename T2, typename T3>
|
||||
class D { };
|
||||
D<A*, A*&, A**> d;
|
||||
template<typename T1, typename T2, typename T3>
|
||||
D<T3, T3&, T3*> B(T1, T1, T2, T3*) { return d; }
|
||||
}
|
||||
|
||||
void o(void)
|
||||
{
|
||||
std::D<A*, A* const&, A* const*> dummy1;
|
||||
std::D<A*, A*&, A**> dummy2;
|
||||
A* dummy3;
|
||||
std::B(dummy1, dummy1, dummy2, &dummy3);
|
||||
}
|
||||
*/
|
||||
|
||||
verify_demangle("_ZSt1BISt1DIP1ARKS2_PS3_ES0_IS2_RS2_PS2_ES2_ET0_T_SB_SA_PT1_", "std::D<A*, A*&, A**> std::B<std::D<A*, A* const&, A* const*>, std::D<A*, A*&, A**>, A*>(std::D<A*, A* const&, A* const*>, std::D<A*, A* const&, A* const*>, std::D<A*, A*&, A**>, A**)");
|
||||
return 0;
|
||||
}
|
34
libstdc++-v3/testsuite/demangle/regression/cw-11.cc
Normal file
34
libstdc++-v3/testsuite/demangle/regression/cw-11.cc
Normal file
@ -0,0 +1,34 @@
|
||||
// 2003-02-26 Carlo Wood <carlo@alinoe.com>
|
||||
|
||||
// Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library 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, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library 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 library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
|
||||
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
// libcwd tests
|
||||
int main()
|
||||
{
|
||||
using namespace __gnu_cxx_test;
|
||||
|
||||
// cplus-dem CORE
|
||||
verify_demangle("_X11TransParseAddress", "_X11TransParseAddress");
|
||||
|
||||
return 0;
|
||||
}
|
88
libstdc++-v3/testsuite/demangle/regression/cw-12.cc
Normal file
88
libstdc++-v3/testsuite/demangle/regression/cw-12.cc
Normal file
@ -0,0 +1,88 @@
|
||||
// 2003-02-26 Carlo Wood <carlo@alinoe.com>
|
||||
|
||||
// Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library 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, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library 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 library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
|
||||
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
// libcwd tests
|
||||
int main()
|
||||
{
|
||||
using namespace __gnu_cxx_test;
|
||||
|
||||
/*
|
||||
namespace std {
|
||||
template<bool b, int i>
|
||||
class __default_alloc_template { };
|
||||
|
||||
template<typename CHAR>
|
||||
class string_char_traits { };
|
||||
|
||||
template<class BASIC_STRING, class ADAPTOR>
|
||||
struct _Alloc_traits {
|
||||
static char _S_instanceless;
|
||||
};
|
||||
template<class BASIC_STRING, class ADAPTOR>
|
||||
char _Alloc_traits<BASIC_STRING, ADAPTOR>::_S_instanceless;
|
||||
}
|
||||
namespace libcw {
|
||||
namespace debug {
|
||||
namespace _private_ {
|
||||
template<typename CHAR, class ALLOCATOR, bool b>
|
||||
class allocator_adaptor { };
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
char x;
|
||||
void q(void)
|
||||
{
|
||||
std::_Alloc_traits<
|
||||
std::basic_string<
|
||||
char,
|
||||
std::string_char_traits<char>,
|
||||
libcw::debug::_private_::allocator_adaptor<
|
||||
char,
|
||||
std::__default_alloc_template<false, 327664>,
|
||||
true
|
||||
>
|
||||
>,
|
||||
libcw::debug::_private_::allocator_adaptor<
|
||||
std::basic_string<
|
||||
char,
|
||||
std::string_char_traits<char>,
|
||||
libcw::debug::_private_::allocator_adaptor<
|
||||
char,
|
||||
std::__default_alloc_template<false, 327664>,
|
||||
true
|
||||
>
|
||||
>,
|
||||
std::__default_alloc_template<false, 327664>,
|
||||
true
|
||||
>
|
||||
> dummy1;
|
||||
x = dummy1._S_instanceless;
|
||||
}
|
||||
*/
|
||||
// cplus-dem FAIL
|
||||
verify_demangle("_ZNSt13_Alloc_traitsISbIcSt18string_char_traitsIcEN5libcw5debug9_private_17allocator_adaptorIcSt24__default_alloc_templateILb0ELi327664EELb1EEEENS5_IS9_S7_Lb1EEEE15_S_instancelessE","std::_Alloc_traits<std::basic_string<char, std::string_char_traits<char>, libcw::debug::_private_::allocator_adaptor<char, std::__default_alloc_template<false, 327664>, true> >, libcw::debug::_private_::allocator_adaptor<std::basic_string<char, std::string_char_traits<char>, libcw::debug::_private_::allocator_adaptor<char, std::__default_alloc_template<false, 327664>, true> >, std::__default_alloc_template<false, 327664>, true> >::_S_instanceless");
|
||||
|
||||
return 0;
|
||||
}
|
34
libstdc++-v3/testsuite/demangle/regression/cw-13.cc
Normal file
34
libstdc++-v3/testsuite/demangle/regression/cw-13.cc
Normal file
@ -0,0 +1,34 @@
|
||||
// 2003-02-26 Carlo Wood <carlo@alinoe.com>
|
||||
|
||||
// Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library 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, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library 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 library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
|
||||
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
// libcwd tests
|
||||
int main()
|
||||
{
|
||||
using namespace __gnu_cxx_test;
|
||||
|
||||
// cplus-dem CORE
|
||||
verify_demangle("_GLOBAL__I__Z2fnv", "global constructors keyed to fn()");
|
||||
|
||||
return 0;
|
||||
}
|
72
libstdc++-v3/testsuite/demangle/regression/cw-14.cc
Normal file
72
libstdc++-v3/testsuite/demangle/regression/cw-14.cc
Normal file
@ -0,0 +1,72 @@
|
||||
// 2003-02-26 Carlo Wood <carlo@alinoe.com>
|
||||
|
||||
// Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library 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, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library 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 library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
|
||||
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
// libcwd tests
|
||||
int main()
|
||||
{
|
||||
using namespace __gnu_cxx_test;
|
||||
|
||||
/*
|
||||
struct G {
|
||||
int m(void) const { return 0; }
|
||||
int n(void) { return 0; }
|
||||
};
|
||||
|
||||
struct H {
|
||||
int m(void) const { return 0; }
|
||||
int n(void) { return 0; }
|
||||
};
|
||||
|
||||
template<typename T>
|
||||
class what
|
||||
{
|
||||
};
|
||||
|
||||
template<typename T>
|
||||
class what2
|
||||
{
|
||||
};
|
||||
|
||||
void r(int (G::*)(void),
|
||||
int (G::*)(void) const,
|
||||
G, // S_
|
||||
int (H::*)(void), // M1HS0_
|
||||
int (G::*)(void), // S1_
|
||||
what<G const>, // what<S2_>
|
||||
what2<G const>, // what2<S8_>
|
||||
int (G::*)(void) const // S3_
|
||||
{
|
||||
G g;
|
||||
what<G const> y;
|
||||
what2<G const> y2;
|
||||
r(&G::n, &G::m, g, &H::n, &G::n, y, y2, &G::m);
|
||||
}
|
||||
*/
|
||||
|
||||
// cplus-dem CORE
|
||||
verify_demangle("_Z1rM1GFivEMS_KFivES_M1HFivES1_4whatIKS_E5what2IS8_ES3_",
|
||||
"r(int (G::*)(), int (G::*)() const, G, int (H::*)(), int (G::*)(), what<G const>, what2<G const>, int (G::*)() const)");
|
||||
|
||||
return 0;
|
||||
}
|
31
libstdc++-v3/testsuite/demangle/regression/old.cc
Normal file
31
libstdc++-v3/testsuite/demangle/regression/old.cc
Normal file
@ -0,0 +1,31 @@
|
||||
// 2003-02-26 Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
// Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library 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, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library 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 library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// IA 64 C++ ABI - 5.1 External Names (a.k.a. Mangling)
|
||||
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
// old libiberty tests for gnu-v3
|
||||
int main()
|
||||
{
|
||||
using namespace __gnu_cxx_test;
|
||||
verify_demangle("St9bad_alloc", "std::bad_alloc");
|
||||
return 0;
|
||||
}
|
@ -40,6 +40,7 @@
|
||||
#include <stdexcept>
|
||||
#include <clocale>
|
||||
#include <locale>
|
||||
#include <cxxabi.h>
|
||||
|
||||
namespace __gnu_cxx_test
|
||||
{
|
||||
@ -85,6 +86,39 @@ namespace __gnu_cxx_test
|
||||
set_memory_limits(float) { }
|
||||
#endif
|
||||
|
||||
|
||||
void
|
||||
verify_demangle(const char* mangled, const char* wanted)
|
||||
{
|
||||
int status = 0;
|
||||
const char* s = abi::__cxa_demangle(mangled, 0, 0, &status);
|
||||
if (!s)
|
||||
{
|
||||
switch (status)
|
||||
{
|
||||
case 0:
|
||||
s = "error code = 0: success";
|
||||
break;
|
||||
case -1:
|
||||
s = "error code = -1: memory allocation failure";
|
||||
break;
|
||||
case -2:
|
||||
s = "error code = -2: invalid mangled name";
|
||||
break;
|
||||
case -3:
|
||||
s = "error code = -3: invalid arguments";
|
||||
break;
|
||||
default:
|
||||
s = "error code unknown - who knows what happened";
|
||||
}
|
||||
}
|
||||
|
||||
std::string w(wanted);
|
||||
if (w != s)
|
||||
throw std::runtime_error(s);
|
||||
}
|
||||
|
||||
|
||||
// Useful exceptions.
|
||||
class locale_data : public std::runtime_error
|
||||
{
|
||||
|
@ -85,6 +85,12 @@ namespace __gnu_cxx_test
|
||||
extern void
|
||||
set_memory_limits(float __size = MEMLIMIT_MB);
|
||||
|
||||
|
||||
// Check mangled name demangles (using __cxa_demangle) as expected.
|
||||
void
|
||||
verify_demangle(const char* mangled, const char* wanted);
|
||||
|
||||
|
||||
// Simple callback structure for variable numbers of tests (all with
|
||||
// same signature). Assume all unit tests are of the signature
|
||||
// void test01();
|
||||
@ -99,6 +105,7 @@ namespace __gnu_cxx_test
|
||||
void
|
||||
run_tests_wrapped_env(const char*, const char*, const func_callback&);
|
||||
|
||||
|
||||
// Test data types.
|
||||
struct pod_char
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user