aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.4.3/libstdc++-v3/libsupc++
diff options
context:
space:
mode:
authorDan Albert <danalbert@google.com>2015-06-17 11:09:54 -0700
committerDan Albert <danalbert@google.com>2015-06-17 14:15:22 -0700
commitf378ebf14df0952eae870c9865bab8326aa8f137 (patch)
tree31794503eb2a8c64ea5f313b93100f1163afcffb /gcc-4.4.3/libstdc++-v3/libsupc++
parent2c58169824949d3a597d9fa81931e001ef9b1bd0 (diff)
downloadtoolchain_gcc-f378ebf14df0952eae870c9865bab8326aa8f137.tar.gz
toolchain_gcc-f378ebf14df0952eae870c9865bab8326aa8f137.tar.bz2
toolchain_gcc-f378ebf14df0952eae870c9865bab8326aa8f137.zip
Delete old versions of GCC.
Change-Id: I710f125d905290e1024cbd67f48299861790c66c
Diffstat (limited to 'gcc-4.4.3/libstdc++-v3/libsupc++')
-rw-r--r--gcc-4.4.3/libstdc++-v3/libsupc++/Makefile.am191
-rw-r--r--gcc-4.4.3/libstdc++-v3/libsupc++/Makefile.in806
-rw-r--r--gcc-4.4.3/libstdc++-v3/libsupc++/array_type_info.cc33
-rw-r--r--gcc-4.4.3/libstdc++-v3/libsupc++/atexit_arm.cc39
-rw-r--r--gcc-4.4.3/libstdc++-v3/libsupc++/bad_cast.cc37
-rw-r--r--gcc-4.4.3/libstdc++-v3/libsupc++/bad_typeid.cc37
-rw-r--r--gcc-4.4.3/libstdc++-v3/libsupc++/class_type_info.cc111
-rw-r--r--gcc-4.4.3/libstdc++-v3/libsupc++/cxxabi-forced.h51
-rw-r--r--gcc-4.4.3/libstdc++-v3/libsupc++/cxxabi.h608
-rw-r--r--gcc-4.4.3/libstdc++-v3/libsupc++/del_op.cc45
-rw-r--r--gcc-4.4.3/libstdc++-v3/libsupc++/del_opnt.cc36
-rw-r--r--gcc-4.4.3/libstdc++-v3/libsupc++/del_opv.cc33
-rw-r--r--gcc-4.4.3/libstdc++-v3/libsupc++/del_opvnt.cc33
-rw-r--r--gcc-4.4.3/libstdc++-v3/libsupc++/dyncast.cc72
-rw-r--r--gcc-4.4.3/libstdc++-v3/libsupc++/eh_alloc.cc220
-rw-r--r--gcc-4.4.3/libstdc++-v3/libsupc++/eh_arm.cc190
-rw-r--r--gcc-4.4.3/libstdc++-v3/libsupc++/eh_aux_runtime.cc51
-rw-r--r--gcc-4.4.3/libstdc++-v3/libsupc++/eh_call.cc157
-rw-r--r--gcc-4.4.3/libstdc++-v3/libsupc++/eh_catch.cc138
-rw-r--r--gcc-4.4.3/libstdc++-v3/libsupc++/eh_exception.cc52
-rw-r--r--gcc-4.4.3/libstdc++-v3/libsupc++/eh_globals.cc168
-rw-r--r--gcc-4.4.3/libstdc++-v3/libsupc++/eh_personality.cc786
-rw-r--r--gcc-4.4.3/libstdc++-v3/libsupc++/eh_ptr.cc244
-rw-r--r--gcc-4.4.3/libstdc++-v3/libsupc++/eh_term_handler.cc46
-rw-r--r--gcc-4.4.3/libstdc++-v3/libsupc++/eh_terminate.cc78
-rw-r--r--gcc-4.4.3/libstdc++-v3/libsupc++/eh_throw.cc117
-rw-r--r--gcc-4.4.3/libstdc++-v3/libsupc++/eh_type.cc54
-rw-r--r--gcc-4.4.3/libstdc++-v3/libsupc++/eh_unex_handler.cc29
-rw-r--r--gcc-4.4.3/libstdc++-v3/libsupc++/enum_type_info.cc33
-rw-r--r--gcc-4.4.3/libstdc++-v3/libsupc++/exception151
-rw-r--r--gcc-4.4.3/libstdc++-v3/libsupc++/exception_defines.h49
-rw-r--r--gcc-4.4.3/libstdc++-v3/libsupc++/exception_ptr.h171
-rw-r--r--gcc-4.4.3/libstdc++-v3/libsupc++/function_type_info.cc39
-rw-r--r--gcc-4.4.3/libstdc++-v3/libsupc++/fundamental_type_info.cc36
-rw-r--r--gcc-4.4.3/libstdc++-v3/libsupc++/guard.cc416
-rw-r--r--gcc-4.4.3/libstdc++-v3/libsupc++/initializer_list72
-rw-r--r--gcc-4.4.3/libstdc++-v3/libsupc++/new112
-rw-r--r--gcc-4.4.3/libstdc++-v3/libsupc++/new_handler.cc49
-rw-r--r--gcc-4.4.3/libstdc++-v3/libsupc++/new_op.cc67
-rw-r--r--gcc-4.4.3/libstdc++-v3/libsupc++/new_opnt.cc63
-rw-r--r--gcc-4.4.3/libstdc++-v3/libsupc++/new_opv.cc33
-rw-r--r--gcc-4.4.3/libstdc++-v3/libsupc++/new_opvnt.cc33
-rw-r--r--gcc-4.4.3/libstdc++-v3/libsupc++/pbase_type_info.cc62
-rw-r--r--gcc-4.4.3/libstdc++-v3/libsupc++/pmem_type_info.cc49
-rw-r--r--gcc-4.4.3/libstdc++-v3/libsupc++/pointer_type_info.cc53
-rw-r--r--gcc-4.4.3/libstdc++-v3/libsupc++/pure.cc51
-rw-r--r--gcc-4.4.3/libstdc++-v3/libsupc++/si_class_type_info.cc85
-rw-r--r--gcc-4.4.3/libstdc++-v3/libsupc++/tinfo.cc81
-rw-r--r--gcc-4.4.3/libstdc++-v3/libsupc++/tinfo.h183
-rw-r--r--gcc-4.4.3/libstdc++-v3/libsupc++/tinfo2.cc45
-rw-r--r--gcc-4.4.3/libstdc++-v3/libsupc++/typeinfo206
-rw-r--r--gcc-4.4.3/libstdc++-v3/libsupc++/unwind-cxx.h412
-rw-r--r--gcc-4.4.3/libstdc++-v3/libsupc++/vec.cc511
-rw-r--r--gcc-4.4.3/libstdc++-v3/libsupc++/vmi_class_type_info.cc359
-rw-r--r--gcc-4.4.3/libstdc++-v3/libsupc++/vterminate.cc98
55 files changed, 0 insertions, 7981 deletions
diff --git a/gcc-4.4.3/libstdc++-v3/libsupc++/Makefile.am b/gcc-4.4.3/libstdc++-v3/libsupc++/Makefile.am
deleted file mode 100644
index 61ac652d3..000000000
--- a/gcc-4.4.3/libstdc++-v3/libsupc++/Makefile.am
+++ /dev/null
@@ -1,191 +0,0 @@
-## Makefile for the GNU C++ Support library.
-##
-## Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
-## Free Software Foundation, Inc.
-##
-## Process this file with automake to produce Makefile.in.
-##
-## This file is part of GCC.
-##
-## GCC 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 3, or (at your option)
-## any later version.
-##
-## GCC 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 GCC; see the file COPYING3. If not see
-## <http://www.gnu.org/licenses/>.
-
-include $(top_srcdir)/fragment.am
-
-# Need this library to both be part of libstdc++.a, and installed
-# separately too.
-# 1) separate libsupc++.la
-toolexeclib_LTLIBRARIES = libsupc++.la
-# 2) integrated libsupc++convenience.la that is to be a part of libstdc++.a
-noinst_LTLIBRARIES = libsupc++convenience.la
-
-
-headers = \
- exception new typeinfo cxxabi.h cxxabi-forced.h exception_defines.h \
- initializer_list exception_ptr.h
-
-if GLIBCXX_HOSTED
- c_sources = \
- cp-demangle.c
-endif
-
-sources = \
- array_type_info.cc \
- atexit_arm.cc \
- bad_cast.cc \
- bad_typeid.cc \
- class_type_info.cc \
- del_op.cc \
- del_opnt.cc \
- del_opv.cc \
- del_opvnt.cc \
- dyncast.cc \
- eh_alloc.cc \
- eh_arm.cc \
- eh_aux_runtime.cc \
- eh_call.cc \
- eh_catch.cc \
- eh_exception.cc \
- eh_globals.cc \
- eh_personality.cc \
- eh_ptr.cc \
- eh_term_handler.cc \
- eh_terminate.cc \
- eh_throw.cc \
- eh_type.cc \
- eh_unex_handler.cc \
- enum_type_info.cc \
- function_type_info.cc \
- fundamental_type_info.cc \
- guard.cc \
- new_handler.cc \
- new_op.cc \
- new_opnt.cc \
- new_opv.cc \
- new_opvnt.cc \
- pbase_type_info.cc \
- pmem_type_info.cc \
- pointer_type_info.cc \
- pure.cc \
- si_class_type_info.cc \
- tinfo.cc \
- tinfo2.cc \
- vec.cc \
- vmi_class_type_info.cc \
- vterminate.cc
-
-libsupc___la_SOURCES = $(sources) $(c_sources)
-libsupc__convenience_la_SOURCES = $(sources) $(c_sources)
-
-glibcxxinstalldir = $(gxx_include_dir)
-glibcxxinstall_HEADERS = $(headers)
-
-# 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.
-AM_CXXFLAGS = \
- -fno-implicit-templates \
- $(LIBSUPCXX_PICFLAGS) \
- $(WARN_CXXFLAGS) \
- $(OPTIMIZE_CXXFLAGS) \
- $(CONFIG_CXXFLAGS) \
- $($(@)_no_omit_frame_pointer)
-
-AM_MAKEFLAGS = \
- "gxx_include_dir=$(gxx_include_dir)"
-
-
-# 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.
-C_INCLUDES = -I.. -I$(toplevel_srcdir)/libiberty -I$(toplevel_srcdir)/include
-C_COMPILE = \
- $(CC) $(DEFS) $(C_INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-
-# LTCOMPILE is copied from LTCXXCOMPILE below.
-LTCOMPILE = $(LIBTOOL) --tag CC --tag disable-shared --mode=compile $(CC) \
- $(DEFS) $(C_INCLUDES) $(LIBSUPCXX_PICFLAGS) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-
-cp-demangle.c:
- rm -f $@
- $(LN_S) $(toplevel_srcdir)/libiberty/cp-demangle.c $@
-cp-demangle.lo: cp-demangle.c
- $(LTCOMPILE) -DIN_GLIBCPP_V3 -Wno-error -c $<
-cp-demangle.o: cp-demangle.c
- $(C_COMPILE) -DIN_GLIBCPP_V3 -Wno-error -c $<
-
-
-# libstdc++ libtool notes
-
-# 1) Need to explicitly set LTCXXCOMPILE so that AM_CXXFLAGS is
-# last. (That way, things like -O2 passed down from the toplevel can
-# be overridden by --enable-debug.)
-
-# 2) In general, libtool expects an argument such as `--tag=CXX' when
-# using the C++ compiler, because that will enable the settings
-# detected when C++ support was being configured. However, when no
-# such flag is given in the command line, libtool attempts to figure
-# it out by matching the compiler name in each configuration section
-# against a prefix of the command line. The problem is that, if the
-# compiler name and its initial flags stored in the libtool
-# configuration file don't match those in the command line, libtool
-# can't decide which configuration to use, and it gives up. The
-# correct solution is to add `--tag CXX' to LTCXXCOMPILE and maybe
-# CXXLINK, just after $(LIBTOOL), so that libtool doesn't have to
-# attempt to infer which configuration to use.
-#
-# We have to put --tag disable-shared after --tag CXX lest things
-# CXX undo the affect of disable-shared.
-LTCXXCOMPILE = $(LIBTOOL) --tag CXX --tag disable-shared \
- --mode=compile $(CXX) $(TOPLEVEL_INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-
-LTLDFLAGS = $(shell $(SHELL) $(top_srcdir)/../libtool-ldflags $(LDFLAGS))
-
-# 3) We'd have a problem when building the shared libstdc++ object if
-# the rules automake generates would be used. We cannot allow g++ to
-# be used since this would add -lstdc++ to the link line which of
-# course is problematic at this point. So, we get the top-level
-# directory to configure libstdc++-v3 to use gcc as the C++
-# compilation driver.
-CXXLINK = $(LIBTOOL) --tag CXX --tag disable-shared \
- --mode=link $(CXX) \
- $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@
-
-# We have to have rules modified from the default to counteract SUN make
-# prepending each of $(glibcxxinstall_HEADERS) with VPATH below.
-install-glibcxxinstallHEADERS: $(glibcxxinstall_HEADERS)
- @$(NORMAL_INSTALL)
- $(mkinstalldirs) $(DESTDIR)$(glibcxxinstalldir)
- @list='$(glibcxxinstall_HEADERS)'; for p in $$list; do \
- q=`echo $$p | sed -e 's,.*/,,'`; \
- if test -f "$$p"; then d= ; else d="$(srcdir)/"; fi; \
- echo " $(INSTALL_DATA) $$d$$p $(DESTDIR)$(glibcxxinstalldir)/$$q"; \
- $(INSTALL_DATA) $$d$$p $(DESTDIR)$(glibcxxinstalldir)/$$q; \
- done
-
-uninstall-glibcxxinstallHEADERS:
- @$(NORMAL_UNINSTALL)
- list='$(glibcxxinstall_HEADERS)'; for p in $$list; do \
- q=`echo $$p | sed -e 's,.*/,,'`; \
- rm -f $(DESTDIR)$(glibcxxinstalldir)/$$q; \
- done
-
-# Google-specific pessimization
-eh_terminate.lo_no_omit_frame_pointer = -fno-omit-frame-pointer
-eh_throw.lo_no_omit_frame_pointer = -fno-omit-frame-pointer
diff --git a/gcc-4.4.3/libstdc++-v3/libsupc++/Makefile.in b/gcc-4.4.3/libstdc++-v3/libsupc++/Makefile.in
deleted file mode 100644
index 149441f1b..000000000
--- a/gcc-4.4.3/libstdc++-v3/libsupc++/Makefile.in
+++ /dev/null
@@ -1,806 +0,0 @@
-# Makefile.in generated by automake 1.9.6 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005 Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-VPATH = @srcdir@
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-top_builddir = ..
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-INSTALL = @INSTALL@
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-target_triplet = @target@
-DIST_COMMON = $(glibcxxinstall_HEADERS) $(srcdir)/Makefile.am \
- $(srcdir)/Makefile.in $(top_srcdir)/fragment.am
-subdir = libsupc++
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/../config/enable.m4 \
- $(top_srcdir)/../config/futex.m4 \
- $(top_srcdir)/../config/iconv.m4 \
- $(top_srcdir)/../config/lead-dot.m4 \
- $(top_srcdir)/../config/lib-ld.m4 \
- $(top_srcdir)/../config/lib-link.m4 \
- $(top_srcdir)/../config/lib-prefix.m4 \
- $(top_srcdir)/../config/multi.m4 \
- $(top_srcdir)/../config/no-executables.m4 \
- $(top_srcdir)/../config/override.m4 \
- $(top_srcdir)/../config/proginstall.m4 \
- $(top_srcdir)/../config/stdint.m4 \
- $(top_srcdir)/../config/unwind_ipinfo.m4 \
- $(top_srcdir)/../libtool.m4 $(top_srcdir)/../ltoptions.m4 \
- $(top_srcdir)/../ltsugar.m4 $(top_srcdir)/../ltversion.m4 \
- $(top_srcdir)/../lt~obsolete.m4 $(top_srcdir)/crossconfig.m4 \
- $(top_srcdir)/linkage.m4 $(top_srcdir)/acinclude.m4 \
- $(top_srcdir)/../config/tls.m4 $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
-am__installdirs = "$(DESTDIR)$(toolexeclibdir)" \
- "$(DESTDIR)$(glibcxxinstalldir)"
-toolexeclibLTLIBRARIES_INSTALL = $(INSTALL)
-LTLIBRARIES = $(noinst_LTLIBRARIES) $(toolexeclib_LTLIBRARIES)
-libsupc___la_LIBADD =
-am__libsupc___la_SOURCES_DIST = array_type_info.cc atexit_arm.cc \
- bad_cast.cc bad_typeid.cc class_type_info.cc del_op.cc \
- del_opnt.cc del_opv.cc del_opvnt.cc dyncast.cc eh_alloc.cc \
- eh_arm.cc eh_aux_runtime.cc eh_call.cc eh_catch.cc \
- eh_exception.cc eh_globals.cc eh_personality.cc eh_ptr.cc \
- eh_term_handler.cc eh_terminate.cc eh_throw.cc eh_type.cc \
- eh_unex_handler.cc enum_type_info.cc function_type_info.cc \
- fundamental_type_info.cc guard.cc new_handler.cc new_op.cc \
- new_opnt.cc new_opv.cc new_opvnt.cc pbase_type_info.cc \
- pmem_type_info.cc pointer_type_info.cc pure.cc \
- si_class_type_info.cc tinfo.cc tinfo2.cc vec.cc \
- vmi_class_type_info.cc vterminate.cc cp-demangle.c
-am__objects_1 = array_type_info.lo atexit_arm.lo bad_cast.lo \
- bad_typeid.lo class_type_info.lo del_op.lo del_opnt.lo \
- del_opv.lo del_opvnt.lo dyncast.lo eh_alloc.lo eh_arm.lo \
- eh_aux_runtime.lo eh_call.lo eh_catch.lo eh_exception.lo \
- eh_globals.lo eh_personality.lo eh_ptr.lo eh_term_handler.lo \
- eh_terminate.lo eh_throw.lo eh_type.lo eh_unex_handler.lo \
- enum_type_info.lo function_type_info.lo \
- fundamental_type_info.lo guard.lo new_handler.lo new_op.lo \
- new_opnt.lo new_opv.lo new_opvnt.lo pbase_type_info.lo \
- pmem_type_info.lo pointer_type_info.lo pure.lo \
- si_class_type_info.lo tinfo.lo tinfo2.lo vec.lo \
- vmi_class_type_info.lo vterminate.lo
-@GLIBCXX_HOSTED_TRUE@am__objects_2 = cp-demangle.lo
-am_libsupc___la_OBJECTS = $(am__objects_1) $(am__objects_2)
-libsupc___la_OBJECTS = $(am_libsupc___la_OBJECTS)
-libsupc__convenience_la_LIBADD =
-am__libsupc__convenience_la_SOURCES_DIST = array_type_info.cc \
- atexit_arm.cc bad_cast.cc bad_typeid.cc class_type_info.cc \
- del_op.cc del_opnt.cc del_opv.cc del_opvnt.cc dyncast.cc \
- eh_alloc.cc eh_arm.cc eh_aux_runtime.cc eh_call.cc eh_catch.cc \
- eh_exception.cc eh_globals.cc eh_personality.cc eh_ptr.cc \
- eh_term_handler.cc eh_terminate.cc eh_throw.cc eh_type.cc \
- eh_unex_handler.cc enum_type_info.cc function_type_info.cc \
- fundamental_type_info.cc guard.cc new_handler.cc new_op.cc \
- new_opnt.cc new_opv.cc new_opvnt.cc pbase_type_info.cc \
- pmem_type_info.cc pointer_type_info.cc pure.cc \
- si_class_type_info.cc tinfo.cc tinfo2.cc vec.cc \
- vmi_class_type_info.cc vterminate.cc cp-demangle.c
-am_libsupc__convenience_la_OBJECTS = $(am__objects_1) $(am__objects_2)
-libsupc__convenience_la_OBJECTS = \
- $(am_libsupc__convenience_la_OBJECTS)
-DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
-depcomp =
-am__depfiles_maybe =
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-CCLD = $(CC)
-LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
- $(AM_LDFLAGS) $(LDFLAGS) -o $@
-CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-CXXLD = $(CXX)
-SOURCES = $(libsupc___la_SOURCES) $(libsupc__convenience_la_SOURCES)
-DIST_SOURCES = $(am__libsupc___la_SOURCES_DIST) \
- $(am__libsupc__convenience_la_SOURCES_DIST)
-glibcxxinstallHEADERS_INSTALL = $(INSTALL_HEADER)
-HEADERS = $(glibcxxinstall_HEADERS)
-ETAGS = etags
-CTAGS = ctags
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ABI_TWEAKS_SRCDIR = @ABI_TWEAKS_SRCDIR@
-ACLOCAL = @ACLOCAL@
-ALLOCATOR_H = @ALLOCATOR_H@
-ALLOCATOR_NAME = @ALLOCATOR_NAME@
-AMTAR = @AMTAR@
-AR = @AR@
-AS = @AS@
-ATOMICITY_SRCDIR = @ATOMICITY_SRCDIR@
-ATOMIC_FLAGS = @ATOMIC_FLAGS@
-ATOMIC_WORD_SRCDIR = @ATOMIC_WORD_SRCDIR@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-BASIC_FILE_CC = @BASIC_FILE_CC@
-BASIC_FILE_H = @BASIC_FILE_H@
-CC = @CC@
-CCODECVT_CC = @CCODECVT_CC@
-CCOLLATE_CC = @CCOLLATE_CC@
-CCTYPE_CC = @CCTYPE_CC@
-CFLAGS = @CFLAGS@
-CLOCALE_CC = @CLOCALE_CC@
-CLOCALE_H = @CLOCALE_H@
-CLOCALE_INTERNAL_H = @CLOCALE_INTERNAL_H@
-CMESSAGES_CC = @CMESSAGES_CC@
-CMESSAGES_H = @CMESSAGES_H@
-CMONEY_CC = @CMONEY_CC@
-CNUMERIC_CC = @CNUMERIC_CC@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CPU_DEFINES_SRCDIR = @CPU_DEFINES_SRCDIR@
-CSTDIO_H = @CSTDIO_H@
-CTIME_CC = @CTIME_CC@
-CTIME_H = @CTIME_H@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-C_INCLUDE_DIR = @C_INCLUDE_DIR@
-DEBUG_FLAGS = @DEBUG_FLAGS@
-DEFS = @DEFS@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-ENABLE_PARALLEL_FALSE = @ENABLE_PARALLEL_FALSE@
-ENABLE_PARALLEL_TRUE = @ENABLE_PARALLEL_TRUE@
-ENABLE_SYMVERS_DARWIN_FALSE = @ENABLE_SYMVERS_DARWIN_FALSE@
-ENABLE_SYMVERS_DARWIN_TRUE = @ENABLE_SYMVERS_DARWIN_TRUE@
-ENABLE_SYMVERS_FALSE = @ENABLE_SYMVERS_FALSE@
-ENABLE_SYMVERS_GNU_FALSE = @ENABLE_SYMVERS_GNU_FALSE@
-ENABLE_SYMVERS_GNU_NAMESPACE_FALSE = @ENABLE_SYMVERS_GNU_NAMESPACE_FALSE@
-ENABLE_SYMVERS_GNU_NAMESPACE_TRUE = @ENABLE_SYMVERS_GNU_NAMESPACE_TRUE@
-ENABLE_SYMVERS_GNU_TRUE = @ENABLE_SYMVERS_GNU_TRUE@
-ENABLE_SYMVERS_TRUE = @ENABLE_SYMVERS_TRUE@
-ENABLE_VISIBILITY_FALSE = @ENABLE_VISIBILITY_FALSE@
-ENABLE_VISIBILITY_TRUE = @ENABLE_VISIBILITY_TRUE@
-ERROR_CONSTANTS_SRCDIR = @ERROR_CONSTANTS_SRCDIR@
-EXEEXT = @EXEEXT@
-EXTRA_CXX_FLAGS = @EXTRA_CXX_FLAGS@
-FGREP = @FGREP@
-GLIBCXX_BUILD_DEBUG_FALSE = @GLIBCXX_BUILD_DEBUG_FALSE@
-GLIBCXX_BUILD_DEBUG_TRUE = @GLIBCXX_BUILD_DEBUG_TRUE@
-GLIBCXX_BUILD_PCH_FALSE = @GLIBCXX_BUILD_PCH_FALSE@
-GLIBCXX_BUILD_PCH_TRUE = @GLIBCXX_BUILD_PCH_TRUE@
-GLIBCXX_C_HEADERS_COMPATIBILITY_FALSE = @GLIBCXX_C_HEADERS_COMPATIBILITY_FALSE@
-GLIBCXX_C_HEADERS_COMPATIBILITY_TRUE = @GLIBCXX_C_HEADERS_COMPATIBILITY_TRUE@
-GLIBCXX_C_HEADERS_C_FALSE = @GLIBCXX_C_HEADERS_C_FALSE@
-GLIBCXX_C_HEADERS_C_GLOBAL_FALSE = @GLIBCXX_C_HEADERS_C_GLOBAL_FALSE@
-GLIBCXX_C_HEADERS_C_GLOBAL_TRUE = @GLIBCXX_C_HEADERS_C_GLOBAL_TRUE@
-GLIBCXX_C_HEADERS_C_STD_FALSE = @GLIBCXX_C_HEADERS_C_STD_FALSE@
-GLIBCXX_C_HEADERS_C_STD_TRUE = @GLIBCXX_C_HEADERS_C_STD_TRUE@
-GLIBCXX_C_HEADERS_C_TRUE = @GLIBCXX_C_HEADERS_C_TRUE@
-GLIBCXX_C_HEADERS_EXTRA_FALSE = @GLIBCXX_C_HEADERS_EXTRA_FALSE@
-GLIBCXX_C_HEADERS_EXTRA_TRUE = @GLIBCXX_C_HEADERS_EXTRA_TRUE@
-GLIBCXX_HOSTED_FALSE = @GLIBCXX_HOSTED_FALSE@
-GLIBCXX_HOSTED_TRUE = @GLIBCXX_HOSTED_TRUE@
-GLIBCXX_INCLUDES = @GLIBCXX_INCLUDES@
-GLIBCXX_LDBL_COMPAT_FALSE = @GLIBCXX_LDBL_COMPAT_FALSE@
-GLIBCXX_LDBL_COMPAT_TRUE = @GLIBCXX_LDBL_COMPAT_TRUE@
-GLIBCXX_LIBS = @GLIBCXX_LIBS@
-GREP = @GREP@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-LD = @LD@
-LDFLAGS = @LDFLAGS@
-LIBICONV = @LIBICONV@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBSUPCXX_PICFLAGS = @LIBSUPCXX_PICFLAGS@
-LIBTOOL = @LIBTOOL@
-LIPO = @LIPO@
-LN_S = @LN_S@
-LTLIBICONV = @LTLIBICONV@
-LTLIBOBJS = @LTLIBOBJS@
-MAINT = @MAINT@
-MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
-MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
-MAKEINFO = @MAKEINFO@
-NM = @NM@
-NMEDIT = @NMEDIT@
-OBJDUMP = @OBJDUMP@
-OBJEXT = @OBJEXT@
-OPTIMIZE_CXXFLAGS = @OPTIMIZE_CXXFLAGS@
-OPT_LDFLAGS = @OPT_LDFLAGS@
-OS_INC_SRCDIR = @OS_INC_SRCDIR@
-OTOOL = @OTOOL@
-OTOOL64 = @OTOOL64@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-RANLIB = @RANLIB@
-SECTION_FLAGS = @SECTION_FLAGS@
-SECTION_LDFLAGS = @SECTION_LDFLAGS@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-SYMVER_FILE = @SYMVER_FILE@
-TOPLEVEL_INCLUDES = @TOPLEVEL_INCLUDES@
-USE_NLS = @USE_NLS@
-VERSION = @VERSION@
-WARN_FLAGS = @WARN_FLAGS@
-WERROR = @WERROR@
-ac_ct_AR = @ac_ct_AR@
-ac_ct_AS = @ac_ct_AS@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_DSYMUTIL = @ac_ct_DSYMUTIL@
-ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
-ac_ct_LIPO = @ac_ct_LIPO@
-ac_ct_NMEDIT = @ac_ct_NMEDIT@
-ac_ct_OBJDUMP = @ac_ct_OBJDUMP@
-ac_ct_OTOOL = @ac_ct_OTOOL@
-ac_ct_OTOOL64 = @ac_ct_OTOOL64@
-ac_ct_RANLIB = @ac_ct_RANLIB@
-ac_ct_STRIP = @ac_ct_STRIP@
-am__leading_dot = @am__leading_dot@
-am__tar = @am__tar@
-am__untar = @am__untar@
-baseline_dir = @baseline_dir@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-check_msgfmt = @check_msgfmt@
-datadir = @datadir@
-enable_shared = @enable_shared@
-enable_static = @enable_static@
-exec_prefix = @exec_prefix@
-glibcxx_MOFILES = @glibcxx_MOFILES@
-glibcxx_PCHFLAGS = @glibcxx_PCHFLAGS@
-glibcxx_POFILES = @glibcxx_POFILES@
-glibcxx_builddir = @glibcxx_builddir@
-glibcxx_localedir = @glibcxx_localedir@
-glibcxx_prefixdir = @glibcxx_prefixdir@
-glibcxx_srcdir = @glibcxx_srcdir@
-glibcxx_thread_h = @glibcxx_thread_h@
-glibcxx_toolexecdir = @glibcxx_toolexecdir@
-glibcxx_toolexeclibdir = @glibcxx_toolexeclibdir@
-gxx_include_dir = @gxx_include_dir@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-libtool_VERSION = @libtool_VERSION@
-localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-multi_basedir = @multi_basedir@
-oldincludedir = @oldincludedir@
-port_specific_symbol_files = @port_specific_symbol_files@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-sysconfdir = @sysconfdir@
-target = @target@
-target_alias = @target_alias@
-target_cpu = @target_cpu@
-target_os = @target_os@
-target_vendor = @target_vendor@
-toplevel_srcdir = @toplevel_srcdir@
-
-# May be used by various substitution variables.
-gcc_version := $(shell cat $(top_srcdir)/../gcc/BASE-VER)
-MAINT_CHARSET = latin1
-mkinstalldirs = $(SHELL) $(toplevel_srcdir)/mkinstalldirs
-PWD_COMMAND = $${PWDCMD-pwd}
-STAMP = echo timestamp >
-toolexecdir = $(glibcxx_toolexecdir)
-toolexeclibdir = $(glibcxx_toolexeclibdir)
-
-# These bits are all figured out from configure. Look in acinclude.m4
-# or configure.ac to see how they are set. See GLIBCXX_EXPORT_FLAGS.
-CONFIG_CXXFLAGS = \
- $(SECTION_FLAGS) $(EXTRA_CXX_FLAGS)
-
-WARN_CXXFLAGS = \
- $(WARN_FLAGS) $(WERROR) -fdiagnostics-show-location=once
-
-
-# -I/-D flags to pass when compiling.
-AM_CPPFLAGS = $(GLIBCXX_INCLUDES)
-
-# Need this library to both be part of libstdc++.a, and installed
-# separately too.
-# 1) separate libsupc++.la
-toolexeclib_LTLIBRARIES = libsupc++.la
-# 2) integrated libsupc++convenience.la that is to be a part of libstdc++.a
-noinst_LTLIBRARIES = libsupc++convenience.la
-headers = \
- exception new typeinfo cxxabi.h cxxabi-forced.h exception_defines.h \
- initializer_list exception_ptr.h
-
-@GLIBCXX_HOSTED_TRUE@c_sources = \
-@GLIBCXX_HOSTED_TRUE@ cp-demangle.c
-
-sources = \
- array_type_info.cc \
- atexit_arm.cc \
- bad_cast.cc \
- bad_typeid.cc \
- class_type_info.cc \
- del_op.cc \
- del_opnt.cc \
- del_opv.cc \
- del_opvnt.cc \
- dyncast.cc \
- eh_alloc.cc \
- eh_arm.cc \
- eh_aux_runtime.cc \
- eh_call.cc \
- eh_catch.cc \
- eh_exception.cc \
- eh_globals.cc \
- eh_personality.cc \
- eh_ptr.cc \
- eh_term_handler.cc \
- eh_terminate.cc \
- eh_throw.cc \
- eh_type.cc \
- eh_unex_handler.cc \
- enum_type_info.cc \
- function_type_info.cc \
- fundamental_type_info.cc \
- guard.cc \
- new_handler.cc \
- new_op.cc \
- new_opnt.cc \
- new_opv.cc \
- new_opvnt.cc \
- pbase_type_info.cc \
- pmem_type_info.cc \
- pointer_type_info.cc \
- pure.cc \
- si_class_type_info.cc \
- tinfo.cc \
- tinfo2.cc \
- vec.cc \
- vmi_class_type_info.cc \
- vterminate.cc
-
-libsupc___la_SOURCES = $(sources) $(c_sources)
-libsupc__convenience_la_SOURCES = $(sources) $(c_sources)
-glibcxxinstalldir = $(gxx_include_dir)
-glibcxxinstall_HEADERS = $(headers)
-
-# 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.
-AM_CXXFLAGS = \
- -fno-implicit-templates \
- $(LIBSUPCXX_PICFLAGS) \
- $(WARN_CXXFLAGS) \
- $(OPTIMIZE_CXXFLAGS) \
- $(CONFIG_CXXFLAGS) \
- $($(@)_no_omit_frame_pointer)
-
-AM_MAKEFLAGS = \
- "gxx_include_dir=$(gxx_include_dir)"
-
-
-# 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.
-C_INCLUDES = -I.. -I$(toplevel_srcdir)/libiberty -I$(toplevel_srcdir)/include
-C_COMPILE = \
- $(CC) $(DEFS) $(C_INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-
-
-# LTCOMPILE is copied from LTCXXCOMPILE below.
-LTCOMPILE = $(LIBTOOL) --tag CC --tag disable-shared --mode=compile $(CC) \
- $(DEFS) $(C_INCLUDES) $(LIBSUPCXX_PICFLAGS) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-
-
-# libstdc++ libtool notes
-
-# 1) Need to explicitly set LTCXXCOMPILE so that AM_CXXFLAGS is
-# last. (That way, things like -O2 passed down from the toplevel can
-# be overridden by --enable-debug.)
-
-# 2) In general, libtool expects an argument such as `--tag=CXX' when
-# using the C++ compiler, because that will enable the settings
-# detected when C++ support was being configured. However, when no
-# such flag is given in the command line, libtool attempts to figure
-# it out by matching the compiler name in each configuration section
-# against a prefix of the command line. The problem is that, if the
-# compiler name and its initial flags stored in the libtool
-# configuration file don't match those in the command line, libtool
-# can't decide which configuration to use, and it gives up. The
-# correct solution is to add `--tag CXX' to LTCXXCOMPILE and maybe
-# CXXLINK, just after $(LIBTOOL), so that libtool doesn't have to
-# attempt to infer which configuration to use.
-#
-# We have to put --tag disable-shared after --tag CXX lest things
-# CXX undo the affect of disable-shared.
-LTCXXCOMPILE = $(LIBTOOL) --tag CXX --tag disable-shared \
- --mode=compile $(CXX) $(TOPLEVEL_INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-
-LTLDFLAGS = $(shell $(SHELL) $(top_srcdir)/../libtool-ldflags $(LDFLAGS))
-
-# 3) We'd have a problem when building the shared libstdc++ object if
-# the rules automake generates would be used. We cannot allow g++ to
-# be used since this would add -lstdc++ to the link line which of
-# course is problematic at this point. So, we get the top-level
-# directory to configure libstdc++-v3 to use gcc as the C++
-# compilation driver.
-CXXLINK = $(LIBTOOL) --tag CXX --tag disable-shared \
- --mode=link $(CXX) \
- $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@
-
-
-# Google-specific pessimization
-eh_terminate.lo_no_omit_frame_pointer = -fno-omit-frame-pointer
-eh_throw.lo_no_omit_frame_pointer = -fno-omit-frame-pointer
-all: all-am
-
-.SUFFIXES:
-.SUFFIXES: .c .cc .lo .o .obj
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/fragment.am $(am__configure_deps)
- @for dep in $?; do \
- case '$(am__configure_deps)' in \
- *$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign --ignore-deps libsupc++/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --foreign --ignore-deps libsupc++/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-clean-noinstLTLIBRARIES:
- -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
- @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
- dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
- test "$$dir" != "$$p" || dir=.; \
- echo "rm -f \"$${dir}/so_locations\""; \
- rm -f "$${dir}/so_locations"; \
- done
-install-toolexeclibLTLIBRARIES: $(toolexeclib_LTLIBRARIES)
- @$(NORMAL_INSTALL)
- test -z "$(toolexeclibdir)" || $(mkdir_p) "$(DESTDIR)$(toolexeclibdir)"
- @list='$(toolexeclib_LTLIBRARIES)'; for p in $$list; do \
- if test -f $$p; then \
- f=$(am__strip_dir) \
- echo " $(LIBTOOL) --mode=install $(toolexeclibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(toolexeclibdir)/$$f'"; \
- $(LIBTOOL) --mode=install $(toolexeclibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(toolexeclibdir)/$$f"; \
- else :; fi; \
- done
-
-uninstall-toolexeclibLTLIBRARIES:
- @$(NORMAL_UNINSTALL)
- @set -x; list='$(toolexeclib_LTLIBRARIES)'; for p in $$list; do \
- p=$(am__strip_dir) \
- echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(toolexeclibdir)/$$p'"; \
- $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(toolexeclibdir)/$$p"; \
- done
-
-clean-toolexeclibLTLIBRARIES:
- -test -z "$(toolexeclib_LTLIBRARIES)" || rm -f $(toolexeclib_LTLIBRARIES)
- @list='$(toolexeclib_LTLIBRARIES)'; for p in $$list; do \
- dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
- test "$$dir" != "$$p" || dir=.; \
- echo "rm -f \"$${dir}/so_locations\""; \
- rm -f "$${dir}/so_locations"; \
- done
-libsupc++.la: $(libsupc___la_OBJECTS) $(libsupc___la_DEPENDENCIES)
- $(CXXLINK) -rpath $(toolexeclibdir) $(libsupc___la_LDFLAGS) $(libsupc___la_OBJECTS) $(libsupc___la_LIBADD) $(LIBS)
-libsupc++convenience.la: $(libsupc__convenience_la_OBJECTS) $(libsupc__convenience_la_DEPENDENCIES)
- $(CXXLINK) $(libsupc__convenience_la_LDFLAGS) $(libsupc__convenience_la_OBJECTS) $(libsupc__convenience_la_LIBADD) $(LIBS)
-
-mostlyclean-compile:
- -rm -f *.$(OBJEXT)
-
-distclean-compile:
- -rm -f *.tab.c
-
-.c.o:
- $(COMPILE) -c $<
-
-.c.obj:
- $(COMPILE) -c `$(CYGPATH_W) '$<'`
-
-.c.lo:
- $(LTCOMPILE) -c -o $@ $<
-
-.cc.o:
- $(CXXCOMPILE) -c -o $@ $<
-
-.cc.obj:
- $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
-.cc.lo:
- $(LTCXXCOMPILE) -c -o $@ $<
-
-mostlyclean-libtool:
- -rm -f *.lo
-
-clean-libtool:
- -rm -rf .libs _libs
-
-distclean-libtool:
- -rm -f libtool
-uninstall-info-am:
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- mkid -fID $$unique
-tags: TAGS
-
-TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- tags=; \
- here=`pwd`; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
- test -n "$$unique" || unique=$$empty_fix; \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$tags $$unique; \
- fi
-ctags: CTAGS
-CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- tags=; \
- here=`pwd`; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- test -z "$(CTAGS_ARGS)$$tags$$unique" \
- || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$tags $$unique
-
-GTAGS:
- here=`$(am__cd) $(top_builddir) && pwd` \
- && cd $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) $$here
-
-distclean-tags:
- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(DISTFILES)
- $(mkdir_p) $(distdir)/..
- @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
- list='$(DISTFILES)'; for file in $$list; do \
- case $$file in \
- $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
- $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
- esac; \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test "$$dir" != "$$file" && test "$$dir" != "."; then \
- dir="/$$dir"; \
- $(mkdir_p) "$(distdir)$$dir"; \
- else \
- dir=''; \
- fi; \
- if test -d $$d/$$file; then \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
- fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
- else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
- || exit 1; \
- fi; \
- done
-check-am: all-am
-check: check-am
-all-am: Makefile $(LTLIBRARIES) $(HEADERS)
-installdirs:
- for dir in "$(DESTDIR)$(toolexeclibdir)" "$(DESTDIR)$(glibcxxinstalldir)"; do \
- test -z "$$dir" || $(mkdir_p) "$$dir"; \
- done
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
- clean-toolexeclibLTLIBRARIES mostlyclean-am
-
-distclean: distclean-am
- -rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
- distclean-libtool distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-info: info-am
-
-info-am:
-
-install-data-am: install-glibcxxinstallHEADERS
-
-install-exec-am: install-toolexeclibLTLIBRARIES
-
-install-info: install-info-am
-
-install-man:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic \
- mostlyclean-libtool
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-glibcxxinstallHEADERS uninstall-info-am \
- uninstall-toolexeclibLTLIBRARIES
-
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
- clean-libtool clean-noinstLTLIBRARIES \
- clean-toolexeclibLTLIBRARIES ctags distclean distclean-compile \
- distclean-generic distclean-libtool distclean-tags distdir dvi \
- dvi-am html html-am info info-am install install-am \
- install-data install-data-am install-exec install-exec-am \
- install-glibcxxinstallHEADERS install-info install-info-am \
- install-man install-strip install-toolexeclibLTLIBRARIES \
- installcheck installcheck-am installdirs maintainer-clean \
- maintainer-clean-generic mostlyclean mostlyclean-compile \
- mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
- tags uninstall uninstall-am uninstall-glibcxxinstallHEADERS \
- uninstall-info-am uninstall-toolexeclibLTLIBRARIES
-
-
-cp-demangle.c:
- rm -f $@
- $(LN_S) $(toplevel_srcdir)/libiberty/cp-demangle.c $@
-cp-demangle.lo: cp-demangle.c
- $(LTCOMPILE) -DIN_GLIBCPP_V3 -Wno-error -c $<
-cp-demangle.o: cp-demangle.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 $(glibcxxinstall_HEADERS) with VPATH below.
-install-glibcxxinstallHEADERS: $(glibcxxinstall_HEADERS)
- @$(NORMAL_INSTALL)
- $(mkinstalldirs) $(DESTDIR)$(glibcxxinstalldir)
- @list='$(glibcxxinstall_HEADERS)'; for p in $$list; do \
- q=`echo $$p | sed -e 's,.*/,,'`; \
- if test -f "$$p"; then d= ; else d="$(srcdir)/"; fi; \
- echo " $(INSTALL_DATA) $$d$$p $(DESTDIR)$(glibcxxinstalldir)/$$q"; \
- $(INSTALL_DATA) $$d$$p $(DESTDIR)$(glibcxxinstalldir)/$$q; \
- done
-
-uninstall-glibcxxinstallHEADERS:
- @$(NORMAL_UNINSTALL)
- list='$(glibcxxinstall_HEADERS)'; for p in $$list; do \
- q=`echo $$p | sed -e 's,.*/,,'`; \
- rm -f $(DESTDIR)$(glibcxxinstalldir)/$$q; \
- done
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/gcc-4.4.3/libstdc++-v3/libsupc++/array_type_info.cc b/gcc-4.4.3/libstdc++-v3/libsupc++/array_type_info.cc
deleted file mode 100644
index 17f911be8..000000000
--- a/gcc-4.4.3/libstdc++-v3/libsupc++/array_type_info.cc
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 1994, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2007,
-// 2009 Free Software Foundation
-//
-// This file is part of GCC.
-//
-// GCC 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 3, or (at your option)
-// any later version.
-
-// GCC 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.
-
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-#include "tinfo.h"
-
-namespace __cxxabiv1 {
-
-__array_type_info::
-~__array_type_info ()
-{}
-
-}
diff --git a/gcc-4.4.3/libstdc++-v3/libsupc++/atexit_arm.cc b/gcc-4.4.3/libstdc++-v3/libsupc++/atexit_arm.cc
deleted file mode 100644
index 757d6c958..000000000
--- a/gcc-4.4.3/libstdc++-v3/libsupc++/atexit_arm.cc
+++ /dev/null
@@ -1,39 +0,0 @@
-// Copyright (C) 2007, 2009 Free Software Foundation, Inc.
-//
-// This file is part of GCC.
-//
-// GCC 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 3, or (at your option)
-// any later version.
-
-// GCC 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.
-
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-#include <cxxabi.h>
-
-#if defined(__arm__) && defined(__ARM_EABI__)
-
-namespace __aeabiv1
-{
- extern "C" int
- __aeabi_atexit (void *object,
- void (*destructor) (void *),
- void *dso_handle) throw ()
- {
- return abi::__cxa_atexit(destructor, object, dso_handle);
- }
-} // namespace __aeabiv1
-
-#endif // defined(__arm__) && defined(__ARM_EABI__)
diff --git a/gcc-4.4.3/libstdc++-v3/libsupc++/bad_cast.cc b/gcc-4.4.3/libstdc++-v3/libsupc++/bad_cast.cc
deleted file mode 100644
index 2f56e4e82..000000000
--- a/gcc-4.4.3/libstdc++-v3/libsupc++/bad_cast.cc
+++ /dev/null
@@ -1,37 +0,0 @@
-// Copyright (C) 1994, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2007,
-// 2009 Free Software Foundation
-//
-// This file is part of GCC.
-//
-// GCC 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 3, or (at your option)
-// any later version.
-
-// GCC 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.
-
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-#include <typeinfo>
-
-namespace std {
-
-bad_cast::~bad_cast() throw() { }
-
-const char*
-bad_cast::what() const throw()
-{
- return "std::bad_cast";
-}
-
-} // namespace std
diff --git a/gcc-4.4.3/libstdc++-v3/libsupc++/bad_typeid.cc b/gcc-4.4.3/libstdc++-v3/libsupc++/bad_typeid.cc
deleted file mode 100644
index 54d7ef59d..000000000
--- a/gcc-4.4.3/libstdc++-v3/libsupc++/bad_typeid.cc
+++ /dev/null
@@ -1,37 +0,0 @@
-// Copyright (C) 1994, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2007,
-// 2009 Free Software Foundation
-//
-// This file is part of GCC.
-//
-// GCC 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 3, or (at your option)
-// any later version.
-
-// GCC 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.
-
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-#include <typeinfo>
-
-namespace std {
-
-bad_typeid::~bad_typeid() throw() { }
-
-const char*
-bad_typeid::what() const throw()
-{
- return "std::bad_typeid";
-}
-
-} // namespace std
diff --git a/gcc-4.4.3/libstdc++-v3/libsupc++/class_type_info.cc b/gcc-4.4.3/libstdc++-v3/libsupc++/class_type_info.cc
deleted file mode 100644
index 9d40d0c6b..000000000
--- a/gcc-4.4.3/libstdc++-v3/libsupc++/class_type_info.cc
+++ /dev/null
@@ -1,111 +0,0 @@
-// Copyright (C) 1994, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2007,
-// 2009 Free Software Foundation
-//
-// This file is part of GCC.
-//
-// GCC 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 3, or (at your option)
-// any later version.
-
-// GCC 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.
-
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-#include "tinfo.h"
-
-namespace __cxxabiv1 {
-
-__class_type_info::
-~__class_type_info ()
-{}
-
-bool __class_type_info::
-__do_catch (const type_info *thr_type,
- void **thr_obj,
- unsigned outer) const
-{
- if (*this == *thr_type)
- return true;
- if (outer >= 4)
- // Neither `A' nor `A *'.
- return false;
- return thr_type->__do_upcast (this, thr_obj);
-}
-
-bool __class_type_info::
-__do_upcast (const __class_type_info *dst_type,
- void **obj_ptr) const
-{
- __upcast_result result (__vmi_class_type_info::__flags_unknown_mask);
-
- __do_upcast (dst_type, *obj_ptr, result);
- if (!contained_public_p (result.part2dst))
- return false;
- *obj_ptr = const_cast <void *> (result.dst_ptr);
- return true;
-}
-
-__class_type_info::__sub_kind __class_type_info::
-__do_find_public_src (ptrdiff_t,
- const void *obj_ptr,
- const __class_type_info *,
- const void *src_ptr) const
-{
- if (src_ptr == obj_ptr)
- // Must be our type, as the pointers match.
- return __contained_public;
- return __not_contained;
-}
-
-bool __class_type_info::
-__do_dyncast (ptrdiff_t,
- __sub_kind access_path,
- const __class_type_info *dst_type,
- const void *obj_ptr,
- const __class_type_info *src_type,
- const void *src_ptr,
- __dyncast_result &__restrict result) const
-{
- if (obj_ptr == src_ptr && *this == *src_type)
- {
- // The src object we started from. Indicate how we are accessible from
- // the most derived object.
- result.whole2src = access_path;
- return false;
- }
- if (*this == *dst_type)
- {
- result.dst_ptr = obj_ptr;
- result.whole2dst = access_path;
- result.dst2src = __not_contained;
- return false;
- }
- return false;
-}
-
-bool __class_type_info::
-__do_upcast (const __class_type_info *dst, const void *obj,
- __upcast_result &__restrict result) const
-{
- if (*this == *dst)
- {
- result.dst_ptr = obj;
- result.base_type = nonvirtual_base_type;
- result.part2dst = __contained_public;
- return true;
- }
- return false;
-}
-
-}
diff --git a/gcc-4.4.3/libstdc++-v3/libsupc++/cxxabi-forced.h b/gcc-4.4.3/libstdc++-v3/libsupc++/cxxabi-forced.h
deleted file mode 100644
index e0cf1d05e..000000000
--- a/gcc-4.4.3/libstdc++-v3/libsupc++/cxxabi-forced.h
+++ /dev/null
@@ -1,51 +0,0 @@
-// cxxabi.h subset for inclusion by other library headers -*- C++ -*-
-
-// Copyright (C) 2007, 2009 Free Software Foundation, Inc.
-//
-// This file is part of GCC.
-//
-// GCC 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 3, or (at your option)
-// any later version.
-//
-// GCC 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.
-//
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-#ifndef _CXXABI_FORCED_H
-#define _CXXABI_FORCED_H 1
-
-#pragma GCC visibility push(default)
-
-#ifdef __cplusplus
-namespace __cxxabiv1
-{
- /**
- * @brief Thrown as part of forced unwinding.
- * @ingroup exceptions
- *
- * A magic placeholder class that can be caught by reference to
- * recognize forced unwinding.
- */
- class __forced_unwind
- {
- virtual ~__forced_unwind() throw();
- virtual void __pure_dummy() = 0; // prevent catch by value
- };
-}
-#endif // __cplusplus
-
-#pragma GCC visibility pop
-
-#endif // __CXXABI_FORCED_H
diff --git a/gcc-4.4.3/libstdc++-v3/libsupc++/cxxabi.h b/gcc-4.4.3/libstdc++-v3/libsupc++/cxxabi.h
deleted file mode 100644
index bfdd8e589..000000000
--- a/gcc-4.4.3/libstdc++-v3/libsupc++/cxxabi.h
+++ /dev/null
@@ -1,608 +0,0 @@
-// new abi support -*- C++ -*-
-
-// Copyright (C) 2000, 2002, 2003, 2004, 2006, 2007, 2009
-// Free Software Foundation, Inc.
-//
-// This file is part of GCC.
-//
-// GCC 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 3, or (at your option)
-// any later version.
-//
-// GCC 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.
-//
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-// Written by Nathan Sidwell, Codesourcery LLC, <nathan@codesourcery.com>
-
-/* This file declares the new abi entry points into the runtime. It is not
- normally necessary for user programs to include this header, or use the
- entry points directly. However, this header is available should that be
- needed.
-
- Some of the entry points are intended for both C and C++, thus this header
- is includable from both C and C++. Though the C++ specific parts are not
- available in C, naturally enough. */
-
-/** @file cxxabi.h
- * The header provides an interface to the C++ ABI.
- */
-
-#ifndef _CXXABI_H
-#define _CXXABI_H 1
-
-#pragma GCC visibility push(default)
-
-#include <stddef.h>
-#include <bits/cxxabi_tweaks.h>
-#include <cxxabi-forced.h>
-
-#ifdef __cplusplus
-#define _GLIBCXX_NOTHROW throw()
-#else
-#define _GLIBCXX_NOTHROW __attribute__((nothrow))
-#endif
-
-#ifdef __cplusplus
-namespace __cxxabiv1
-{
- extern "C"
- {
-#endif
-
- typedef __cxa_cdtor_return_type (*__cxa_cdtor_type)(void *);
-
- // Allocate array.
- void*
- __cxa_vec_new(size_t __element_count, size_t __element_size,
- size_t __padding_size, __cxa_cdtor_type constructor,
- __cxa_cdtor_type destructor);
-
- void*
- __cxa_vec_new2(size_t __element_count, size_t __element_size,
- size_t __padding_size, __cxa_cdtor_type constructor,
- __cxa_cdtor_type destructor, void *(*__alloc) (size_t),
- void (*__dealloc) (void*));
-
- void*
- __cxa_vec_new3(size_t __element_count, size_t __element_size,
- size_t __padding_size, __cxa_cdtor_type constructor,
- __cxa_cdtor_type destructor, void *(*__alloc) (size_t),
- void (*__dealloc) (void*, size_t));
-
- // Construct array.
- __cxa_vec_ctor_return_type
- __cxa_vec_ctor(void* __array_address, size_t __element_count,
- size_t __element_size, __cxa_cdtor_type constructor,
- __cxa_cdtor_type destructor);
-
- __cxa_vec_ctor_return_type
- __cxa_vec_cctor(void* dest_array, void* src_array, size_t element_count,
- size_t element_size,
- __cxa_cdtor_return_type (*constructor) (void*, void*),
- __cxa_cdtor_type destructor);
-
- // Destruct array.
- void
- __cxa_vec_dtor(void* __array_address, size_t __element_count,
- size_t __element_size, __cxa_cdtor_type destructor);
-
- void
- __cxa_vec_cleanup(void* __array_address, size_t __element_count,
- size_t __element_size, __cxa_cdtor_type destructor);
-
- // Destruct and release array.
- void
- __cxa_vec_delete(void* __array_address, size_t __element_size,
- size_t __padding_size, __cxa_cdtor_type destructor);
-
- void
- __cxa_vec_delete2(void* __array_address, size_t __element_size,
- size_t __padding_size, __cxa_cdtor_type destructor,
- void (*__dealloc) (void*));
-
- void
- __cxa_vec_delete3(void* __array_address, size_t __element_size,
- size_t __padding_size, __cxa_cdtor_type destructor,
- void (*__dealloc) (void*, size_t));
-
- int
- __cxa_guard_acquire(__guard*);
-
- void
- __cxa_guard_release(__guard*);
-
- void
- __cxa_guard_abort(__guard*);
-
- // Pure virtual functions.
- void
- __cxa_pure_virtual(void);
-
- // Exception handling.
- void
- __cxa_bad_cast();
-
- void
- __cxa_bad_typeid();
-
- // DSO destruction.
- int
- __cxa_atexit(void (*)(void*), void*, void*) _GLIBCXX_NOTHROW;
-
- int
- __cxa_finalize(void*);
-
-
- /**
- * @brief Demangling routine.
- * ABI-mandated entry point in the C++ runtime library for demangling.
- *
- * @param __mangled_name A NUL-terminated character string
- * containing the name to be demangled.
- *
- * @param __output_buffer A region of memory, allocated with
- * malloc, of @a *__length bytes, into which the demangled name is
- * stored. If @a __output_buffer is not long enough, it is
- * expanded using realloc. @a __output_buffer may instead be NULL;
- * in that case, the demangled name is placed in a region of memory
- * allocated with malloc.
- *
- * @param __length If @a __length is non-NULL, the length of the
- * buffer containing the demangled name is placed in @a *__length.
- *
- * @param __status @a *__status is set to one of the following values:
- * 0: The demangling operation succeeded.
- * -1: A memory allocation failiure occurred.
- * -2: @a mangled_name is not a valid name under the C++ ABI mangling rules.
- * -3: One of the arguments is invalid.
- *
- * @return A pointer to the start of the NUL-terminated demangled
- * name, or NULL if the demangling fails. The caller is
- * responsible for deallocating this memory using @c free.
- *
- * The demangling is performed using the C++ ABI mangling rules,
- * with GNU extensions. For example, this function is used in
- * __gnu_cxx::__verbose_terminate_handler.
- *
- * See http://gcc.gnu.org/onlinedocs/libstdc++/manual/bk01pt12ch39.html
- * for other examples of use.
- *
- * @note The same demangling functionality is available via
- * libiberty (@c <libiberty/demangle.h> and @c libiberty.a) in GCC
- * 3.1 and later, but that requires explicit installation (@c
- * --enable-install-libiberty) and uses a different API, although
- * the ABI is unchanged.
- */
- char*
- __cxa_demangle(const char* __mangled_name, char* __output_buffer,
- size_t* __length, int* __status);
-#ifdef __cplusplus
- }
-} // namespace __cxxabiv1
-#endif
-
-#ifdef __cplusplus
-
-#include <typeinfo>
-
-namespace __cxxabiv1
-{
- // Type information for int, float etc.
- class __fundamental_type_info : public std::type_info
- {
- public:
- explicit
- __fundamental_type_info(const char* __n) : std::type_info(__n) { }
-
- virtual
- ~__fundamental_type_info();
- };
-
- // Type information for array objects.
- class __array_type_info : public std::type_info
- {
- public:
- explicit
- __array_type_info(const char* __n) : std::type_info(__n) { }
-
- virtual
- ~__array_type_info();
- };
-
- // Type information for functions (both member and non-member).
- class __function_type_info : public std::type_info
- {
- public:
- explicit
- __function_type_info(const char* __n) : std::type_info(__n) { }
-
- virtual
- ~__function_type_info();
-
- protected:
- // Implementation defined member function.
- virtual bool
- __is_function_p() const;
- };
-
- // Type information for enumerations.
- class __enum_type_info : public std::type_info
- {
- public:
- explicit
- __enum_type_info(const char* __n) : std::type_info(__n) { }
-
- virtual
- ~__enum_type_info();
- };
-
- // Common type information for simple pointers and pointers to member.
- class __pbase_type_info : public std::type_info
- {
- public:
- unsigned int __flags; // Qualification of the target object.
- const std::type_info* __pointee; // Type of pointed to object.
-
- explicit
- __pbase_type_info(const char* __n, int __quals,
- const std::type_info* __type)
- : std::type_info(__n), __flags(__quals), __pointee(__type)
- { }
-
- virtual
- ~__pbase_type_info();
-
- // Implementation defined type.
- enum __masks
- {
- __const_mask = 0x1,
- __volatile_mask = 0x2,
- __restrict_mask = 0x4,
- __incomplete_mask = 0x8,
- __incomplete_class_mask = 0x10
- };
-
- protected:
- __pbase_type_info(const __pbase_type_info&);
-
- __pbase_type_info&
- operator=(const __pbase_type_info&);
-
- // Implementation defined member functions.
- virtual bool
- __do_catch(const std::type_info* __thr_type, void** __thr_obj,
- unsigned int __outer) const;
-
- inline virtual bool
- __pointer_catch(const __pbase_type_info* __thr_type, void** __thr_obj,
- unsigned __outer) const;
- };
-
- // Type information for simple pointers.
- class __pointer_type_info : public __pbase_type_info
- {
- public:
- explicit
- __pointer_type_info(const char* __n, int __quals,
- const std::type_info* __type)
- : __pbase_type_info (__n, __quals, __type) { }
-
-
- virtual
- ~__pointer_type_info();
-
- protected:
- // Implementation defined member functions.
- virtual bool
- __is_pointer_p() const;
-
- virtual bool
- __pointer_catch(const __pbase_type_info* __thr_type, void** __thr_obj,
- unsigned __outer) const;
- };
-
- class __class_type_info;
-
- // Type information for a pointer to member variable.
- class __pointer_to_member_type_info : public __pbase_type_info
- {
- public:
- __class_type_info* __context; // Class of the member.
-
- explicit
- __pointer_to_member_type_info(const char* __n, int __quals,
- const std::type_info* __type,
- __class_type_info* __klass)
- : __pbase_type_info(__n, __quals, __type), __context(__klass) { }
-
- virtual
- ~__pointer_to_member_type_info();
-
- protected:
- __pointer_to_member_type_info(const __pointer_to_member_type_info&);
-
- __pointer_to_member_type_info&
- operator=(const __pointer_to_member_type_info&);
-
- // Implementation defined member function.
- virtual bool
- __pointer_catch(const __pbase_type_info* __thr_type, void** __thr_obj,
- unsigned __outer) const;
- };
-
- // Helper class for __vmi_class_type.
- class __base_class_type_info
- {
- public:
- const __class_type_info* __base_type; // Base class type.
- long __offset_flags; // Offset and info.
-
- enum __offset_flags_masks
- {
- __virtual_mask = 0x1,
- __public_mask = 0x2,
- __hwm_bit = 2,
- __offset_shift = 8 // Bits to shift offset.
- };
-
- // Implementation defined member functions.
- bool
- __is_virtual_p() const
- { return __offset_flags & __virtual_mask; }
-
- bool
- __is_public_p() const
- { return __offset_flags & __public_mask; }
-
- ptrdiff_t
- __offset() const
- {
- // This shift, being of a signed type, is implementation
- // defined. GCC implements such shifts as arithmetic, which is
- // what we want.
- return static_cast<ptrdiff_t>(__offset_flags) >> __offset_shift;
- }
- };
-
- // Type information for a class.
- class __class_type_info : public std::type_info
- {
- public:
- explicit
- __class_type_info (const char *__n) : type_info(__n) { }
-
- virtual
- ~__class_type_info ();
-
- // Implementation defined types.
- // The type sub_kind tells us about how a base object is contained
- // within a derived object. We often do this lazily, hence the
- // UNKNOWN value. At other times we may use NOT_CONTAINED to mean
- // not publicly contained.
- enum __sub_kind
- {
- // We have no idea.
- __unknown = 0,
-
- // Not contained within us (in some circumstances this might
- // mean not contained publicly)
- __not_contained,
-
- // Contained ambiguously.
- __contained_ambig,
-
- // Via a virtual path.
- __contained_virtual_mask = __base_class_type_info::__virtual_mask,
-
- // Via a public path.
- __contained_public_mask = __base_class_type_info::__public_mask,
-
- // Contained within us.
- __contained_mask = 1 << __base_class_type_info::__hwm_bit,
-
- __contained_private = __contained_mask,
- __contained_public = __contained_mask | __contained_public_mask
- };
-
- struct __upcast_result;
- struct __dyncast_result;
-
- protected:
- // Implementation defined member functions.
- virtual bool
- __do_upcast(const __class_type_info* __dst_type, void**__obj_ptr) const;
-
- virtual bool
- __do_catch(const type_info* __thr_type, void** __thr_obj,
- unsigned __outer) const;
-
- public:
- // Helper for upcast. See if DST is us, or one of our bases.
- // Return false if not found, true if found.
- virtual bool
- __do_upcast(const __class_type_info* __dst, const void* __obj,
- __upcast_result& __restrict __result) const;
-
- // Indicate whether SRC_PTR of type SRC_TYPE is contained publicly
- // within OBJ_PTR. OBJ_PTR points to a base object of our type,
- // which is the destination type. SRC2DST indicates how SRC
- // objects might be contained within this type. If SRC_PTR is one
- // of our SRC_TYPE bases, indicate the virtuality. Returns
- // not_contained for non containment or private containment.
- inline __sub_kind
- __find_public_src(ptrdiff_t __src2dst, const void* __obj_ptr,
- const __class_type_info* __src_type,
- const void* __src_ptr) const;
-
- // Helper for dynamic cast. ACCESS_PATH gives the access from the
- // most derived object to this base. DST_TYPE indicates the
- // desired type we want. OBJ_PTR points to a base of our type
- // within the complete object. SRC_TYPE indicates the static type
- // started from and SRC_PTR points to that base within the most
- // derived object. Fill in RESULT with what we find. Return true
- // if we have located an ambiguous match.
- virtual bool
- __do_dyncast(ptrdiff_t __src2dst, __sub_kind __access_path,
- const __class_type_info* __dst_type, const void* __obj_ptr,
- const __class_type_info* __src_type, const void* __src_ptr,
- __dyncast_result& __result) const;
-
- // Helper for find_public_subobj. SRC2DST indicates how SRC_TYPE
- // bases are inherited by the type started from -- which is not
- // necessarily the current type. The current type will be a base
- // of the destination type. OBJ_PTR points to the current base.
- virtual __sub_kind
- __do_find_public_src(ptrdiff_t __src2dst, const void* __obj_ptr,
- const __class_type_info* __src_type,
- const void* __src_ptr) const;
- };
-
- // Type information for a class with a single non-virtual base.
- class __si_class_type_info : public __class_type_info
- {
- public:
- const __class_type_info* __base_type;
-
- explicit
- __si_class_type_info(const char *__n, const __class_type_info *__base)
- : __class_type_info(__n), __base_type(__base) { }
-
- virtual
- ~__si_class_type_info();
-
- protected:
- __si_class_type_info(const __si_class_type_info&);
-
- __si_class_type_info&
- operator=(const __si_class_type_info&);
-
- // Implementation defined member functions.
- virtual bool
- __do_dyncast(ptrdiff_t __src2dst, __sub_kind __access_path,
- const __class_type_info* __dst_type, const void* __obj_ptr,
- const __class_type_info* __src_type, const void* __src_ptr,
- __dyncast_result& __result) const;
-
- virtual __sub_kind
- __do_find_public_src(ptrdiff_t __src2dst, const void* __obj_ptr,
- const __class_type_info* __src_type,
- const void* __sub_ptr) const;
-
- virtual bool
- __do_upcast(const __class_type_info*__dst, const void*__obj,
- __upcast_result& __restrict __result) const;
- };
-
- // Type information for a class with multiple and/or virtual bases.
- class __vmi_class_type_info : public __class_type_info
- {
- public:
- unsigned int __flags; // Details about the class hierarchy.
- unsigned int __base_count; // Number of direct bases.
-
- // The array of bases uses the trailing array struct hack so this
- // class is not constructable with a normal constructor. It is
- // internally generated by the compiler.
- __base_class_type_info __base_info[1]; // Array of bases.
-
- explicit
- __vmi_class_type_info(const char* __n, int ___flags)
- : __class_type_info(__n), __flags(___flags), __base_count(0) { }
-
- virtual
- ~__vmi_class_type_info();
-
- // Implementation defined types.
- enum __flags_masks
- {
- __non_diamond_repeat_mask = 0x1, // Distinct instance of repeated base.
- __diamond_shaped_mask = 0x2, // Diamond shaped multiple inheritance.
- __flags_unknown_mask = 0x10
- };
-
- protected:
- // Implementation defined member functions.
- virtual bool
- __do_dyncast(ptrdiff_t __src2dst, __sub_kind __access_path,
- const __class_type_info* __dst_type, const void* __obj_ptr,
- const __class_type_info* __src_type, const void* __src_ptr,
- __dyncast_result& __result) const;
-
- virtual __sub_kind
- __do_find_public_src(ptrdiff_t __src2dst, const void* __obj_ptr,
- const __class_type_info* __src_type,
- const void* __src_ptr) const;
-
- virtual bool
- __do_upcast(const __class_type_info* __dst, const void* __obj,
- __upcast_result& __restrict __result) const;
- };
-
- // Dynamic cast runtime.
- // src2dst has the following possible values
- // >-1: src_type is a unique public non-virtual base of dst_type
- // dst_ptr + src2dst == src_ptr
- // -1: unspecified relationship
- // -2: src_type is not a public base of dst_type
- // -3: src_type is a multiple public non-virtual base of dst_type
- extern "C" void*
- __dynamic_cast(const void* __src_ptr, // Starting object.
- const __class_type_info* __src_type, // Static type of object.
- const __class_type_info* __dst_type, // Desired target type.
- ptrdiff_t __src2dst); // How src and dst are related.
-
-
- // Returns the type_info for the currently handled exception [15.3/8], or
- // null if there is none.
- extern "C" std::type_info*
- __cxa_current_exception_type();
-
- // A magic placeholder class that can be caught by reference
- // to recognize foreign exceptions.
- class __foreign_exception
- {
- virtual ~__foreign_exception() throw();
- virtual void __pure_dummy() = 0; // prevent catch by value
- };
-
-} // namespace __cxxabiv1
-
-/** @namespace abi
- * @brief The cross-vendor C++ Application Binary Interface. A
- * namespace alias to __cxxabiv1, but user programs should use the
- * alias `abi'.
- *
- * A brief overview of an ABI is given in the libstdc++ FAQ, question
- * 5.8 (you may have a copy of the FAQ locally, or you can view the online
- * version at http://gcc.gnu.org/onlinedocs/libstdc++/faq/index.html#5_8).
- *
- * GCC subscribes to a cross-vendor ABI for C++, sometimes
- * called the IA64 ABI because it happens to be the native ABI for that
- * platform. It is summarized at http://www.codesourcery.com/cxx-abi/
- * along with the current specification.
- *
- * For users of GCC greater than or equal to 3.x, entry points are
- * available in <cxxabi.h>, which notes, <em>"It is not normally
- * necessary for user programs to include this header, or use the
- * entry points directly. However, this header is available should
- * that be needed."</em>
-*/
-namespace abi = __cxxabiv1;
-
-#endif // __cplusplus
-
-#pragma GCC visibility pop
-
-#endif // __CXXABI_H
diff --git a/gcc-4.4.3/libstdc++-v3/libsupc++/del_op.cc b/gcc-4.4.3/libstdc++-v3/libsupc++/del_op.cc
deleted file mode 100644
index f5bdc7819..000000000
--- a/gcc-4.4.3/libstdc++-v3/libsupc++/del_op.cc
+++ /dev/null
@@ -1,45 +0,0 @@
-// Boilerplate support routines for -*- C++ -*- dynamic memory management.
-
-// Copyright (C) 1997, 1998, 1999, 2000, 2004, 2007, 2009 Free Software Foundation
-//
-// This file is part of GCC.
-//
-// GCC 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 3, or (at your option)
-// any later version.
-//
-// GCC 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.
-//
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-#include <bits/c++config.h>
-
-#if !_GLIBCXX_HOSTED
-// A freestanding C runtime may not provide "free" -- but there is no
-// other reasonable way to implement "operator delete".
-_GLIBCXX_BEGIN_NAMESPACE(std)
- extern "C" void free(void*);
-_GLIBCXX_END_NAMESPACE
-#else
-# include <cstdlib>
-#endif
-
-#include "new"
-
-_GLIBCXX_WEAK_DEFINITION void
-operator delete(void* ptr) throw ()
-{
- if (ptr)
- std::free(ptr);
-}
diff --git a/gcc-4.4.3/libstdc++-v3/libsupc++/del_opnt.cc b/gcc-4.4.3/libstdc++-v3/libsupc++/del_opnt.cc
deleted file mode 100644
index 75051d5be..000000000
--- a/gcc-4.4.3/libstdc++-v3/libsupc++/del_opnt.cc
+++ /dev/null
@@ -1,36 +0,0 @@
-// Boilerplate support routines for -*- C++ -*- dynamic memory management.
-
-// Copyright (C) 1997, 1998, 1999, 2000, 2004, 2009 Free Software Foundation
-//
-// This file is part of GCC.
-//
-// GCC 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 3, or (at your option)
-// any later version.
-//
-// GCC 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.
-//
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-#include <bits/c++config.h>
-#include "new"
-
-extern "C" void free (void *);
-
-_GLIBCXX_WEAK_DEFINITION void
-operator delete (void *ptr, const std::nothrow_t&) throw ()
-{
- if (ptr)
- free (ptr);
-}
diff --git a/gcc-4.4.3/libstdc++-v3/libsupc++/del_opv.cc b/gcc-4.4.3/libstdc++-v3/libsupc++/del_opv.cc
deleted file mode 100644
index c56df07d9..000000000
--- a/gcc-4.4.3/libstdc++-v3/libsupc++/del_opv.cc
+++ /dev/null
@@ -1,33 +0,0 @@
-// Boilerplate support routines for -*- C++ -*- dynamic memory management.
-
-// Copyright (C) 1997, 1998, 1999, 2000, 2004, 2009 Free Software Foundation
-//
-// This file is part of GCC.
-//
-// GCC 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 3, or (at your option)
-// any later version.
-//
-// GCC 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.
-//
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-#include <bits/c++config.h>
-#include "new"
-
-_GLIBCXX_WEAK_DEFINITION void
-operator delete[] (void *ptr) throw ()
-{
- ::operator delete (ptr);
-}
diff --git a/gcc-4.4.3/libstdc++-v3/libsupc++/del_opvnt.cc b/gcc-4.4.3/libstdc++-v3/libsupc++/del_opvnt.cc
deleted file mode 100644
index fec64953e..000000000
--- a/gcc-4.4.3/libstdc++-v3/libsupc++/del_opvnt.cc
+++ /dev/null
@@ -1,33 +0,0 @@
-// Boilerplate support routines for -*- C++ -*- dynamic memory management.
-
-// Copyright (C) 1997, 1998, 1999, 2000, 2004, 2009 Free Software Foundation
-//
-// This file is part of GCC.
-//
-// GCC 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 3, or (at your option)
-// any later version.
-//
-// GCC 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.
-//
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-#include <bits/c++config.h>
-#include "new"
-
-_GLIBCXX_WEAK_DEFINITION void
-operator delete[] (void *ptr, const std::nothrow_t&) throw ()
-{
- ::operator delete (ptr);
-}
diff --git a/gcc-4.4.3/libstdc++-v3/libsupc++/dyncast.cc b/gcc-4.4.3/libstdc++-v3/libsupc++/dyncast.cc
deleted file mode 100644
index f565ed459..000000000
--- a/gcc-4.4.3/libstdc++-v3/libsupc++/dyncast.cc
+++ /dev/null
@@ -1,72 +0,0 @@
-// Copyright (C) 1994, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2007, 2009
-// Free Software Foundation
-//
-// This file is part of GCC.
-//
-// GCC 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 3, or (at your option)
-// any later version.
-
-// GCC 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.
-
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-#include "tinfo.h"
-
-namespace __cxxabiv1 {
-
-
-// this is the external interface to the dynamic cast machinery
-extern "C" void *
-__dynamic_cast (const void *src_ptr, // object started from
- const __class_type_info *src_type, // type of the starting object
- const __class_type_info *dst_type, // desired target type
- ptrdiff_t src2dst) // how src and dst are related
-{
- const void *vtable = *static_cast <const void *const *> (src_ptr);
- const vtable_prefix *prefix =
- adjust_pointer <vtable_prefix> (vtable,
- -offsetof (vtable_prefix, origin));
- const void *whole_ptr =
- adjust_pointer <void> (src_ptr, prefix->whole_object);
- const __class_type_info *whole_type = prefix->whole_type;
- __class_type_info::__dyncast_result result;
-
- whole_type->__do_dyncast (src2dst, __class_type_info::__contained_public,
- dst_type, whole_ptr, src_type, src_ptr, result);
- if (!result.dst_ptr)
- return NULL;
- if (contained_public_p (result.dst2src))
- // Src is known to be a public base of dst.
- return const_cast <void *> (result.dst_ptr);
- if (contained_public_p (__class_type_info::__sub_kind (result.whole2src & result.whole2dst)))
- // Both src and dst are known to be public bases of whole. Found a valid
- // cross cast.
- return const_cast <void *> (result.dst_ptr);
- if (contained_nonvirtual_p (result.whole2src))
- // Src is known to be a non-public nonvirtual base of whole, and not a
- // base of dst. Found an invalid cross cast, which cannot also be a down
- // cast
- return NULL;
- if (result.dst2src == __class_type_info::__unknown)
- result.dst2src = dst_type->__find_public_src (src2dst, result.dst_ptr,
- src_type, src_ptr);
- if (contained_public_p (result.dst2src))
- // Found a valid down cast
- return const_cast <void *> (result.dst_ptr);
- // Must be an invalid down cast, or the cross cast wasn't bettered
- return NULL;
-}
-
-}
diff --git a/gcc-4.4.3/libstdc++-v3/libsupc++/eh_alloc.cc b/gcc-4.4.3/libstdc++-v3/libsupc++/eh_alloc.cc
deleted file mode 100644
index 818af0fe1..000000000
--- a/gcc-4.4.3/libstdc++-v3/libsupc++/eh_alloc.cc
+++ /dev/null
@@ -1,220 +0,0 @@
-// -*- C++ -*- Allocate exception objects.
-// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2008, 2009
-// Free Software Foundation, Inc.
-//
-// This file is part of GCC.
-//
-// GCC 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 3, or (at your option)
-// any later version.
-//
-// GCC 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.
-//
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-// This is derived from the C++ ABI for IA-64. Where we diverge
-// for cross-architecture compatibility are noted with "@@@".
-
-#include <bits/c++config.h>
-#include <cstdlib>
-#if _GLIBCXX_HOSTED
-#include <cstring>
-#endif
-#include <climits>
-#include <exception>
-#include "unwind-cxx.h"
-#include <ext/concurrence.h>
-
-#if _GLIBCXX_HOSTED
-using std::free;
-using std::malloc;
-using std::memset;
-#else
-// In a freestanding environment, these functions may not be available
-// -- but for now, we assume that they are.
-extern "C" void *malloc (std::size_t);
-extern "C" void free(void *);
-extern "C" void *memset (void *, int, std::size_t);
-#endif
-
-using namespace __cxxabiv1;
-
-// ??? How to control these parameters.
-
-// Guess from the size of basic types how large a buffer is reasonable.
-// Note that the basic c++ exception header has 13 pointers and 2 ints,
-// so on a system with PSImode pointers we're talking about 56 bytes
-// just for overhead.
-
-#if INT_MAX == 32767
-# define EMERGENCY_OBJ_SIZE 128
-# define EMERGENCY_OBJ_COUNT 16
-#elif LONG_MAX == 2147483647
-# define EMERGENCY_OBJ_SIZE 512
-# define EMERGENCY_OBJ_COUNT 32
-#else
-# define EMERGENCY_OBJ_SIZE 1024
-# define EMERGENCY_OBJ_COUNT 64
-#endif
-
-#ifndef __GTHREADS
-# undef EMERGENCY_OBJ_COUNT
-# define EMERGENCY_OBJ_COUNT 4
-#endif
-
-#if INT_MAX == 32767 || EMERGENCY_OBJ_COUNT <= 32
-typedef unsigned int bitmask_type;
-#else
-typedef unsigned long bitmask_type;
-#endif
-
-
-typedef char one_buffer[EMERGENCY_OBJ_SIZE] __attribute__((aligned));
-static one_buffer emergency_buffer[EMERGENCY_OBJ_COUNT];
-static bitmask_type emergency_used;
-
-static __cxa_dependent_exception dependents_buffer[EMERGENCY_OBJ_COUNT];
-static bitmask_type dependents_used;
-
-namespace
-{
- // A single mutex controlling emergency allocations.
- __gnu_cxx::__mutex emergency_mutex;
-}
-
-extern "C" void *
-__cxxabiv1::__cxa_allocate_exception(std::size_t thrown_size) throw()
-{
- void *ret;
-
- thrown_size += sizeof (__cxa_refcounted_exception);
- ret = malloc (thrown_size);
-
- if (! ret)
- {
- __gnu_cxx::__scoped_lock sentry(emergency_mutex);
-
- bitmask_type used = emergency_used;
- unsigned int which = 0;
-
- if (thrown_size > EMERGENCY_OBJ_SIZE)
- goto failed;
- while (used & 1)
- {
- used >>= 1;
- if (++which >= EMERGENCY_OBJ_COUNT)
- goto failed;
- }
-
- emergency_used |= (bitmask_type)1 << which;
- ret = &emergency_buffer[which][0];
-
- failed:;
-
- if (!ret)
- std::terminate ();
- }
-
- // We have an uncaught exception as soon as we allocate memory. This
- // yields uncaught_exception() true during the copy-constructor that
- // initializes the exception object. See Issue 475.
- __cxa_eh_globals *globals = __cxa_get_globals ();
- globals->uncaughtExceptions += 1;
-
- memset (ret, 0, sizeof (__cxa_refcounted_exception));
-
- return (void *)((char *)ret + sizeof (__cxa_refcounted_exception));
-}
-
-
-extern "C" void
-__cxxabiv1::__cxa_free_exception(void *vptr) throw()
-{
- char *base = (char *) emergency_buffer;
- char *ptr = (char *) vptr;
- if (ptr >= base
- && ptr < base + sizeof (emergency_buffer))
- {
- const unsigned int which
- = (unsigned) (ptr - base) / EMERGENCY_OBJ_SIZE;
-
- __gnu_cxx::__scoped_lock sentry(emergency_mutex);
- emergency_used &= ~((bitmask_type)1 << which);
- }
- else
- free (ptr - sizeof (__cxa_refcounted_exception));
-}
-
-
-extern "C" __cxa_dependent_exception*
-__cxxabiv1::__cxa_allocate_dependent_exception() throw()
-{
- __cxa_dependent_exception *ret;
-
- ret = static_cast<__cxa_dependent_exception*>
- (malloc (sizeof (__cxa_dependent_exception)));
-
- if (!ret)
- {
- __gnu_cxx::__scoped_lock sentry(emergency_mutex);
-
- bitmask_type used = dependents_used;
- unsigned int which = 0;
-
- while (used & 1)
- {
- used >>= 1;
- if (++which >= EMERGENCY_OBJ_COUNT)
- goto failed;
- }
-
- dependents_used |= (bitmask_type)1 << which;
- ret = &dependents_buffer[which];
-
- failed:;
-
- if (!ret)
- std::terminate ();
- }
-
- // We have an uncaught exception as soon as we allocate memory. This
- // yields uncaught_exception() true during the copy-constructor that
- // initializes the exception object. See Issue 475.
- __cxa_eh_globals *globals = __cxa_get_globals ();
- globals->uncaughtExceptions += 1;
-
- memset (ret, 0, sizeof (__cxa_dependent_exception));
-
- return ret;
-}
-
-
-extern "C" void
-__cxxabiv1::__cxa_free_dependent_exception
- (__cxa_dependent_exception *vptr) throw()
-{
- char *base = (char *) dependents_buffer;
- char *ptr = (char *) vptr;
- if (ptr >= base
- && ptr < base + sizeof (dependents_buffer))
- {
- const unsigned int which
- = (unsigned) (ptr - base) / sizeof (__cxa_dependent_exception);
-
- __gnu_cxx::__scoped_lock sentry(emergency_mutex);
- dependents_used &= ~((bitmask_type)1 << which);
- }
- else
- free (vptr);
-}
diff --git a/gcc-4.4.3/libstdc++-v3/libsupc++/eh_arm.cc b/gcc-4.4.3/libstdc++-v3/libsupc++/eh_arm.cc
deleted file mode 100644
index 1ce63bd7a..000000000
--- a/gcc-4.4.3/libstdc++-v3/libsupc++/eh_arm.cc
+++ /dev/null
@@ -1,190 +0,0 @@
-// -*- C++ -*- ARM specific Exception handling support routines.
-// Copyright (C) 2004, 2005, 2008, 2009 Free Software Foundation, Inc.
-//
-// This file is part of GCC.
-//
-// GCC 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 3, or (at your option)
-// any later version.
-//
-// GCC 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.
-//
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-//
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-#include <cxxabi.h>
-#include "unwind-cxx.h"
-
-#ifdef __ARM_EABI_UNWINDER__
-
-using namespace __cxxabiv1;
-
-// The GCC command-line option "-fvisibility=hidden" apparently fails to hide
-// the visibility of the inline assembly function "__cxa_end_cleanup".
-// We need to keep the visibility of the __cxa_* functions coherent otherwise
-// linking eh_arm.o to resolve __cxa_end_cleanup (eg needed by -frtti
-// -fexceptions) will disappoint the linker by exposing __cxa_type_match and
-// __cxa_begin_cleanup (eg needed by __aeabi_idiv from libgcc.a).
-// Therefore as a simple workaround we just force the visibility to default for
-// all these __cxa functions in this module.
-
-#pragma GCC visibility push(default)
-
-// Given the thrown type THROW_TYPE, pointer to a variable containing a
-// pointer to the exception object THROWN_PTR_P and a type CATCH_TYPE to
-// compare against, return whether or not there is a match and if so,
-// update *THROWN_PTR_P.
-
-extern "C" __cxa_type_match_result
-__cxa_type_match(_Unwind_Exception* ue_header,
- const std::type_info* catch_type,
- bool is_reference __attribute__((__unused__)),
- void** thrown_ptr_p)
-{
- bool forced_unwind = __is_gxx_forced_unwind_class(ue_header->exception_class);
- bool foreign_exception = !forced_unwind && !__is_gxx_exception_class(ue_header->exception_class);
- bool dependent_exception =
- __is_dependent_exception(ue_header->exception_class);
- __cxa_exception* xh = __get_exception_header_from_ue(ue_header);
- __cxa_dependent_exception *dx = __get_dependent_exception_from_ue(ue_header);
- const std::type_info* throw_type;
-
- if (forced_unwind)
- throw_type = &typeid(abi::__forced_unwind);
- else if (foreign_exception)
- throw_type = &typeid(abi::__foreign_exception);
- else if (dependent_exception)
- throw_type = __get_exception_header_from_obj
- (dx->primaryException)->exceptionType;
- else
- throw_type = xh->exceptionType;
-
- void* thrown_ptr = *thrown_ptr_p;
-
- // Pointer types need to adjust the actual pointer, not
- // the pointer to pointer that is the exception object.
- // This also has the effect of passing pointer types
- // "by value" through the __cxa_begin_catch return value.
- if (throw_type->__is_pointer_p())
- thrown_ptr = *(void**) thrown_ptr;
-
- if (catch_type->__do_catch(throw_type, &thrown_ptr, 1))
- {
- *thrown_ptr_p = thrown_ptr;
-
- if (typeid(*catch_type) == typeid (typeid(void*)))
- {
- const __pointer_type_info *catch_pointer_type =
- static_cast<const __pointer_type_info *> (catch_type);
- const __pointer_type_info *throw_pointer_type =
- static_cast<const __pointer_type_info *> (throw_type);
-
- if (typeid (*catch_pointer_type->__pointee) != typeid (void)
- && (*catch_pointer_type->__pointee !=
- *throw_pointer_type->__pointee))
- return ctm_succeeded_with_ptr_to_base;
- }
-
- return ctm_succeeded;
- }
-
- return ctm_failed;
-}
-
-// ABI defined routine called at the start of a cleanup handler.
-extern "C" bool
-__cxa_begin_cleanup(_Unwind_Exception* ue_header)
-{
- __cxa_eh_globals *globals = __cxa_get_globals();
- __cxa_exception *header = __get_exception_header_from_ue(ue_header);
- bool native = __is_gxx_exception_class(header->unwindHeader.exception_class);
-
-
- if (native)
- {
- header->propagationCount++;
- // Add it to the chain if this is the first time we've seen this
- // exception.
- if (header->propagationCount == 1)
- {
- header->nextPropagatingException = globals->propagatingExceptions;
- globals->propagatingExceptions = header;
- }
- }
- else
- {
- // Remember the exception object, so end_cleanup can return it.
- // These cannot be stacked, so we must abort if we already have
- // a propagating exception.
- if (globals->propagatingExceptions)
- std::terminate ();
- globals->propagatingExceptions = header;
- }
-
- return true;
-}
-
-// Do the work for __cxa_end_cleanup. Returns the currently propagating
-// exception object.
-extern "C" _Unwind_Exception *
-__gnu_end_cleanup(void)
-{
- __cxa_exception *header;
- __cxa_eh_globals *globals = __cxa_get_globals();
-
- header = globals->propagatingExceptions;
-
- // Check something hasn't gone horribly wrong.
- if (!header)
- std::terminate();
-
- if (__is_gxx_exception_class(header->unwindHeader.exception_class))
- {
- header->propagationCount--;
- if (header->propagationCount == 0)
- {
- // Remove exception from chain.
- globals->propagatingExceptions = header->nextPropagatingException;
- header->nextPropagatingException = NULL;
- }
- }
- else
- globals->propagatingExceptions = NULL;
-
- return &header->unwindHeader;
-}
-
-// Assembly wrapper to call __gnu_end_cleanup without clobbering r1-r3.
-// Also push r4 to preserve stack alignment.
-#ifdef __thumb__
-asm (".global __cxa_end_cleanup\n"
-" .type __cxa_end_cleanup, \"function\"\n"
-" .thumb_func\n"
-"__cxa_end_cleanup:\n"
-" push\t{r1, r2, r3, r4}\n"
-" bl\t__gnu_end_cleanup\n"
-" pop\t{r1, r2, r3, r4}\n"
-" bl\t_Unwind_Resume @ Never returns\n");
-#else
-asm (".global __cxa_end_cleanup\n"
-" .type __cxa_end_cleanup, \"function\"\n"
-"__cxa_end_cleanup:\n"
-" stmfd\tsp!, {r1, r2, r3, r4}\n"
-" bl\t__gnu_end_cleanup\n"
-" ldmfd\tsp!, {r1, r2, r3, r4}\n"
-" bl\t_Unwind_Resume @ Never returns\n");
-#endif
-
-#pragma GCC visibility pop
-
-#endif
diff --git a/gcc-4.4.3/libstdc++-v3/libsupc++/eh_aux_runtime.cc b/gcc-4.4.3/libstdc++-v3/libsupc++/eh_aux_runtime.cc
deleted file mode 100644
index 579c23986..000000000
--- a/gcc-4.4.3/libstdc++-v3/libsupc++/eh_aux_runtime.cc
+++ /dev/null
@@ -1,51 +0,0 @@
-// -*- C++ -*- Common throw conditions.
-// Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2009
-// Free Software Foundation
-//
-// This file is part of GCC.
-//
-// GCC 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 3, or (at your option)
-// any later version.
-//
-// GCC 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.
-//
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-//
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-#include "typeinfo"
-#include "exception"
-#include <cstdlib>
-#include "unwind-cxx.h"
-#include "exception_defines.h"
-
-extern "C" void
-__cxxabiv1::__cxa_bad_cast ()
-{
-#ifdef __EXCEPTIONS
- throw std::bad_cast();
-#else
- std::abort();
-#endif
-}
-
-extern "C" void
-__cxxabiv1::__cxa_bad_typeid ()
-{
-#ifdef __EXCEPTIONS
- throw std::bad_typeid();
-#else
- std::abort();
-#endif
-}
-
diff --git a/gcc-4.4.3/libstdc++-v3/libsupc++/eh_call.cc b/gcc-4.4.3/libstdc++-v3/libsupc++/eh_call.cc
deleted file mode 100644
index a737eb889..000000000
--- a/gcc-4.4.3/libstdc++-v3/libsupc++/eh_call.cc
+++ /dev/null
@@ -1,157 +0,0 @@
-// -*- C++ -*- Helpers for calling unextected and terminate
-// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
-// Free Software Foundation, Inc.
-//
-// This file is part of GCC.
-//
-// GCC 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 3, or (at your option)
-// any later version.
-//
-// GCC 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.
-//
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-#include <bits/c++config.h>
-#include <cstdlib>
-#include <exception_defines.h>
-#include "unwind-cxx.h"
-
-using namespace __cxxabiv1;
-
-#include "unwind-pe.h"
-
-
-// Helper routine for when the exception handling code needs to call
-// terminate.
-
-extern "C" void
-__cxa_call_terminate(_Unwind_Exception* ue_header)
-{
-
- if (ue_header)
- {
- // terminate is classed as a catch handler.
- __cxa_begin_catch(ue_header);
-
- // Call the terminate handler that was in effect when we threw this
- // exception. */
- if (__is_gxx_exception_class(ue_header->exception_class))
- {
- __cxa_exception* xh;
-
- xh = __get_exception_header_from_ue(ue_header);
- __terminate(xh->terminateHandler);
- }
- }
- /* Call the global routine if we don't have anything better. */
- std::terminate();
-}
-
-
-#ifdef __ARM_EABI_UNWINDER__
-// The ARM EABI __cxa_call_unexpected has the same semantics as the generic
-// routine, but the exception specification has a different format.
-extern "C" void
-__cxa_call_unexpected(void* exc_obj_in)
-{
- _Unwind_Exception* exc_obj
- = reinterpret_cast<_Unwind_Exception*>(exc_obj_in);
-
- int rtti_count = 0;
- _Unwind_Word rtti_stride = 0;
- _Unwind_Word* rtti_list = NULL;
- bool foreign_exception;
- std::unexpected_handler unexpectedHandler = NULL;
- std::terminate_handler terminateHandler = NULL;
- __cxa_exception* xh;
- if (__is_gxx_exception_class(exc_obj->exception_class))
- {
- // Save data from the EO, which may be clobbered by _cxa_begin_catch.
- xh = __get_exception_header_from_ue(exc_obj);
- unexpectedHandler = xh->unexpectedHandler;
- terminateHandler = xh->terminateHandler;
- rtti_count = exc_obj->barrier_cache.bitpattern[1];
-
- rtti_stride = exc_obj->barrier_cache.bitpattern[3];
- rtti_list = (_Unwind_Word*) exc_obj->barrier_cache.bitpattern[4];
- foreign_exception = false;
- }
- else
- foreign_exception = true;
-
- /* This must be called after extracting data from the EO, but before
- calling unexpected(). */
- __cxa_begin_catch(exc_obj);
-
- // This function is a handler for our exception argument. If we exit
- // by throwing a different exception, we'll need the original cleaned up.
- struct end_catch_protect
- {
- end_catch_protect() { }
- ~end_catch_protect() { __cxa_end_catch(); }
- } end_catch_protect_obj;
-
-
- __try
- {
- if (foreign_exception)
- std::unexpected();
- else
- __unexpected(unexpectedHandler);
- }
- __catch(...)
- {
- /* See if the new exception matches the rtti list. */
- if (foreign_exception)
- std::terminate();
-
- // Get the exception thrown from unexpected.
-
- __cxa_eh_globals* globals = __cxa_get_globals_fast();
- __cxa_exception* new_xh = globals->caughtExceptions;
- void* new_ptr = __get_object_from_ambiguous_exception (new_xh);
- const std::type_info* catch_type;
- int n;
- bool bad_exception_allowed = false;
- const std::type_info& bad_exc = typeid(std::bad_exception);
-
- // Check the new exception against the rtti list
- for (n = 0; n < rtti_count; n++)
- {
- _Unwind_Word offset;
-
- offset = (_Unwind_Word) &rtti_list[n * (rtti_stride >> 2)];
- offset = _Unwind_decode_target2(offset);
- catch_type = (const std::type_info*) (offset);
-
- if (__cxa_type_match(&new_xh->unwindHeader, catch_type, false,
- &new_ptr) != ctm_failed)
- __throw_exception_again;
-
- if (catch_type->__do_catch(&bad_exc, 0, 1))
- bad_exception_allowed = true;
- }
-
- // If the exception spec allows std::bad_exception, throw that.
-#ifdef __EXCEPTIONS
- if (bad_exception_allowed)
- throw std::bad_exception();
-#endif
-
- // Otherwise, die.
- __terminate(terminateHandler);
- }
-}
-#endif // __ARM_EABI_UNWINDER__
diff --git a/gcc-4.4.3/libstdc++-v3/libsupc++/eh_catch.cc b/gcc-4.4.3/libstdc++-v3/libsupc++/eh_catch.cc
deleted file mode 100644
index 567222aa5..000000000
--- a/gcc-4.4.3/libstdc++-v3/libsupc++/eh_catch.cc
+++ /dev/null
@@ -1,138 +0,0 @@
-// -*- C++ -*- Exception handling routines for catching.
-// Copyright (C) 2001, 2003, 2004, 2009 Free Software Foundation, Inc.
-//
-// This file is part of GCC.
-//
-// GCC 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 3, or (at your option)
-// any later version.
-//
-// GCC 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.
-//
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-#include <cstdlib>
-#include "unwind-cxx.h"
-
-using namespace __cxxabiv1;
-
-extern "C" void *
-__cxxabiv1::__cxa_get_exception_ptr(void *exc_obj_in) throw()
-{
- _Unwind_Exception *exceptionObject
- = reinterpret_cast <_Unwind_Exception *>(exc_obj_in);
-
- return __gxx_caught_object(exceptionObject);
-}
-
-extern "C" void *
-__cxxabiv1::__cxa_begin_catch (void *exc_obj_in) throw()
-{
- _Unwind_Exception *exceptionObject
- = reinterpret_cast <_Unwind_Exception *>(exc_obj_in);
- __cxa_eh_globals *globals = __cxa_get_globals ();
- __cxa_exception *prev = globals->caughtExceptions;
- __cxa_exception *header = __get_exception_header_from_ue (exceptionObject);
- void* objectp;
-
- // Foreign exceptions can't be stacked here. If the exception stack is
- // empty, then fine. Otherwise we really have no choice but to terminate.
- // Note that this use of "header" is a lie. It's fine so long as we only
- // examine header->unwindHeader though.
- if (!__is_gxx_exception_class(header->unwindHeader.exception_class))
- {
- if (prev != 0)
- std::terminate ();
-
- // Remember for end_catch and rethrow.
- globals->caughtExceptions = header;
-
- // ??? No sensible value to return; we don't know what the
- // object is, much less where it is in relation to the header.
- return 0;
- }
-
- int count = header->handlerCount;
- // Count is less than zero if this exception was rethrown from an
- // immediately enclosing region.
- if (count < 0)
- count = -count + 1;
- else
- count += 1;
- header->handlerCount = count;
- globals->uncaughtExceptions -= 1;
-
- if (header != prev)
- {
- header->nextException = prev;
- globals->caughtExceptions = header;
- }
-
- objectp = __gxx_caught_object(exceptionObject);
-#ifdef __ARM_EABI_UNWINDER__
- _Unwind_Complete(exceptionObject);
-#endif
- return objectp;
-}
-
-
-extern "C" void
-__cxxabiv1::__cxa_end_catch ()
-{
- __cxa_eh_globals *globals = __cxa_get_globals_fast ();
- __cxa_exception *header = globals->caughtExceptions;
-
- // A rethrow of a foreign exception will be removed from the
- // the exception stack immediately by __cxa_rethrow.
- if (!header)
- return;
-
- // A foreign exception couldn't have been stacked (see above),
- // so by definition processing must be complete.
- if (!__is_gxx_exception_class(header->unwindHeader.exception_class))
- {
- globals->caughtExceptions = 0;
- _Unwind_DeleteException (&header->unwindHeader);
- return;
- }
-
- int count = header->handlerCount;
- if (count < 0)
- {
- // This exception was rethrown. Decrement the (inverted) catch
- // count and remove it from the chain when it reaches zero.
- if (++count == 0)
- globals->caughtExceptions = header->nextException;
- }
- else if (--count == 0)
- {
- // Handling for this exception is complete. Destroy the object.
- globals->caughtExceptions = header->nextException;
- _Unwind_DeleteException (&header->unwindHeader);
- return;
- }
- else if (count < 0)
- // A bug in the exception handling library or compiler.
- std::terminate ();
-
- header->handlerCount = count;
-}
-
-
-bool
-std::uncaught_exception() throw()
-{
- __cxa_eh_globals *globals = __cxa_get_globals ();
- return globals->uncaughtExceptions != 0;
-}
diff --git a/gcc-4.4.3/libstdc++-v3/libsupc++/eh_exception.cc b/gcc-4.4.3/libstdc++-v3/libsupc++/eh_exception.cc
deleted file mode 100644
index 2f752b310..000000000
--- a/gcc-4.4.3/libstdc++-v3/libsupc++/eh_exception.cc
+++ /dev/null
@@ -1,52 +0,0 @@
-// -*- C++ -*- std::exception implementation.
-// Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-// 2003, 2004, 2005, 2006, 2007, 2009
-// Free Software Foundation
-//
-// This file is part of GCC.
-//
-// GCC 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 3, or (at your option)
-// any later version.
-//
-// GCC 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.
-//
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-#include "typeinfo"
-#include "exception"
-#include <cxxabi.h>
-
-std::exception::~exception() throw() { }
-
-std::bad_exception::~bad_exception() throw() { }
-
-abi::__forced_unwind::~__forced_unwind() throw() { }
-
-abi::__foreign_exception::~__foreign_exception() throw() { }
-
-const char*
-std::exception::what() const throw()
-{
- // NB: Another elegant option would be returning typeid(*this).name()
- // and not overriding what() in bad_exception, bad_alloc, etc. In
- // that case, however, mangled names would be returned, PR 14493.
- return "std::exception";
-}
-
-const char*
-std::bad_exception::what() const throw()
-{
- return "std::bad_exception";
-}
diff --git a/gcc-4.4.3/libstdc++-v3/libsupc++/eh_globals.cc b/gcc-4.4.3/libstdc++-v3/libsupc++/eh_globals.cc
deleted file mode 100644
index 845b6d1ae..000000000
--- a/gcc-4.4.3/libstdc++-v3/libsupc++/eh_globals.cc
+++ /dev/null
@@ -1,168 +0,0 @@
-// -*- C++ -*- Manage the thread-local exception globals.
-// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2009
-// Free Software Foundation, Inc.
-//
-// This file is part of GCC.
-//
-// GCC 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 3, or (at your option)
-// any later version.
-//
-// GCC 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.
-//
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-#include <bits/c++config.h>
-#include <exception>
-#include <cstdlib>
-#include "cxxabi.h"
-#include "unwind-cxx.h"
-#include "bits/gthr.h"
-
-#if _GLIBCXX_HOSTED
-using std::free;
-using std::malloc;
-#else
-// In a freestanding environment, these functions may not be
-// available -- but for now, we assume that they are.
-extern "C" void *malloc (std::size_t);
-extern "C" void free(void *);
-#endif
-
-using namespace __cxxabiv1;
-
-#if _GLIBCXX_HAVE_TLS
-
-namespace
-{
- abi::__cxa_eh_globals*
- get_global() throw()
- {
- static __thread abi::__cxa_eh_globals global;
- return &global;
- }
-} // anonymous namespace
-
-extern "C" __cxa_eh_globals*
-__cxxabiv1::__cxa_get_globals_fast() throw()
-{ return get_global(); }
-
-extern "C" __cxa_eh_globals*
-__cxxabiv1::__cxa_get_globals() throw()
-{ return get_global(); }
-
-
-#else
-
-// Single-threaded fallback buffer.
-static __cxa_eh_globals eh_globals;
-
-#if __GTHREADS
-
-static void
-eh_globals_dtor(void* ptr)
-{
- if (ptr)
- {
- __cxa_eh_globals* g = reinterpret_cast<__cxa_eh_globals*>(ptr);
- __cxa_exception* exn = g->caughtExceptions;
- __cxa_exception* next;
- while (exn)
- {
- next = exn->nextException;
- _Unwind_DeleteException(&exn->unwindHeader);
- exn = next;
- }
- free(ptr);
- }
-}
-
-struct __eh_globals_init
-{
- __gthread_key_t _M_key;
- bool _M_init;
-
- __eh_globals_init() : _M_init(false)
- {
- if (__gthread_active_p())
- _M_init = __gthread_key_create(&_M_key, eh_globals_dtor) == 0;
- }
-
- ~__eh_globals_init()
- {
- /* Work-around for an Android-specific bug, where this destructor
- * is called with a NULL object pointer. This is due to a bug in the
- * __cxa_finalize() implementation that was only fixed in 2.2.
- */
-#ifdef __ANDROID__
- if (this == NULL)
- return;
-#endif
- if (_M_init)
- __gthread_key_delete(_M_key);
- _M_init = false;
- }
-};
-
-static __eh_globals_init init;
-
-extern "C" __cxa_eh_globals*
-__cxxabiv1::__cxa_get_globals_fast() throw()
-{
- __cxa_eh_globals* g;
- if (init._M_init)
- g = static_cast<__cxa_eh_globals*>(__gthread_getspecific(init._M_key));
- else
- g = &eh_globals;
- return g;
-}
-
-extern "C" __cxa_eh_globals*
-__cxxabiv1::__cxa_get_globals() throw()
-{
- __cxa_eh_globals* g;
- if (init._M_init)
- {
- g = static_cast<__cxa_eh_globals*>(__gthread_getspecific(init._M_key));
- if (!g)
- {
- void* v = malloc(sizeof(__cxa_eh_globals));
- if (v == 0 || __gthread_setspecific(init._M_key, v) != 0)
- std::terminate();
- g = static_cast<__cxa_eh_globals*>(v);
- g->caughtExceptions = 0;
- g->uncaughtExceptions = 0;
-#ifdef __ARM_EABI_UNWINDER__
- g->propagatingExceptions = 0;
-#endif
- }
- }
- else
- g = &eh_globals;
- return g;
-}
-
-#else
-
-extern "C" __cxa_eh_globals*
-__cxxabiv1::__cxa_get_globals_fast() throw()
-{ return &eh_globals; }
-
-extern "C" __cxa_eh_globals*
-__cxxabiv1::__cxa_get_globals() throw()
-{ return &eh_globals; }
-
-#endif
-
-#endif
diff --git a/gcc-4.4.3/libstdc++-v3/libsupc++/eh_personality.cc b/gcc-4.4.3/libstdc++-v3/libsupc++/eh_personality.cc
deleted file mode 100644
index befb26c9d..000000000
--- a/gcc-4.4.3/libstdc++-v3/libsupc++/eh_personality.cc
+++ /dev/null
@@ -1,786 +0,0 @@
-// -*- C++ -*- The GNU C++ exception personality routine.
-// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
-// Free Software Foundation, Inc.
-//
-// This file is part of GCC.
-//
-// GCC 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 3, or (at your option)
-// any later version.
-//
-// GCC 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.
-//
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-#include <bits/c++config.h>
-#include <cstdlib>
-#include <exception_defines.h>
-#include <cxxabi.h>
-#include "unwind-cxx.h"
-
-using namespace __cxxabiv1;
-
-#ifdef __ARM_EABI_UNWINDER__
-#define NO_SIZE_OF_ENCODED_VALUE
-#endif
-
-#include "unwind-pe.h"
-
-
-struct lsda_header_info
-{
- _Unwind_Ptr Start;
- _Unwind_Ptr LPStart;
- _Unwind_Ptr ttype_base;
- const unsigned char *TType;
- const unsigned char *action_table;
- unsigned char ttype_encoding;
- unsigned char call_site_encoding;
-};
-
-static const unsigned char *
-parse_lsda_header (_Unwind_Context *context, const unsigned char *p,
- lsda_header_info *info)
-{
- _uleb128_t tmp;
- unsigned char lpstart_encoding;
-
- info->Start = (context ? _Unwind_GetRegionStart (context) : 0);
-
- // Find @LPStart, the base to which landing pad offsets are relative.
- lpstart_encoding = *p++;
- if (lpstart_encoding != DW_EH_PE_omit)
- p = read_encoded_value (context, lpstart_encoding, p, &info->LPStart);
- else
- info->LPStart = info->Start;
-
- // Find @TType, the base of the handler and exception spec type data.
- info->ttype_encoding = *p++;
- if (info->ttype_encoding != DW_EH_PE_omit)
- {
- p = read_uleb128 (p, &tmp);
- info->TType = p + tmp;
- }
- else
- info->TType = 0;
-
- // The encoding and length of the call-site table; the action table
- // immediately follows.
- info->call_site_encoding = *p++;
- p = read_uleb128 (p, &tmp);
- info->action_table = p + tmp;
-
- return p;
-}
-
-#ifdef __ARM_EABI_UNWINDER__
-
-// Return an element from a type table.
-
-static const std::type_info*
-get_ttype_entry(lsda_header_info* info, _uleb128_t i)
-{
- _Unwind_Ptr ptr;
-
- ptr = (_Unwind_Ptr) (info->TType - (i * 4));
- ptr = _Unwind_decode_target2(ptr);
-
- return reinterpret_cast<const std::type_info *>(ptr);
-}
-
-// The ABI provides a routine for matching exception object types.
-typedef _Unwind_Control_Block _throw_typet;
-#define get_adjusted_ptr(catch_type, throw_type, thrown_ptr_p) \
- (__cxa_type_match (throw_type, catch_type, false, thrown_ptr_p) \
- != ctm_failed)
-
-// Return true if THROW_TYPE matches one if the filter types.
-
-static bool
-check_exception_spec(lsda_header_info* info, _throw_typet* throw_type,
- void* thrown_ptr, _sleb128_t filter_value)
-{
- const _uleb128_t* e = ((const _uleb128_t*) info->TType)
- - filter_value - 1;
-
- while (1)
- {
- const std::type_info* catch_type;
- _uleb128_t tmp;
-
- tmp = *e;
-
- // Zero signals the end of the list. If we've not found
- // a match by now, then we've failed the specification.
- if (tmp == 0)
- return false;
-
- tmp = _Unwind_decode_target2((_Unwind_Word) e);
-
- // Match a ttype entry.
- catch_type = reinterpret_cast<const std::type_info*>(tmp);
-
- // ??? There is currently no way to ask the RTTI code about the
- // relationship between two types without reference to a specific
- // object. There should be; then we wouldn't need to mess with
- // thrown_ptr here.
- if (get_adjusted_ptr(catch_type, throw_type, &thrown_ptr))
- return true;
-
- // Advance to the next entry.
- e++;
- }
-}
-
-
-// Save stage1 handler information in the exception object
-
-static inline void
-save_caught_exception(struct _Unwind_Exception* ue_header,
- struct _Unwind_Context* context,
- void* thrown_ptr,
- int handler_switch_value,
- const unsigned char* language_specific_data,
- _Unwind_Ptr landing_pad,
- const unsigned char* action_record
- __attribute__((__unused__)))
-{
- ue_header->barrier_cache.sp = _Unwind_GetGR(context, 13);
- ue_header->barrier_cache.bitpattern[0] = (_uw) thrown_ptr;
- ue_header->barrier_cache.bitpattern[1]
- = (_uw) handler_switch_value;
- ue_header->barrier_cache.bitpattern[2]
- = (_uw) language_specific_data;
- ue_header->barrier_cache.bitpattern[3] = (_uw) landing_pad;
-}
-
-
-// Restore the catch handler data saved during phase1.
-
-static inline void
-restore_caught_exception(struct _Unwind_Exception* ue_header,
- int& handler_switch_value,
- const unsigned char*& language_specific_data,
- _Unwind_Ptr& landing_pad)
-{
- handler_switch_value = (int) ue_header->barrier_cache.bitpattern[1];
- language_specific_data =
- (const unsigned char*) ue_header->barrier_cache.bitpattern[2];
- landing_pad = (_Unwind_Ptr) ue_header->barrier_cache.bitpattern[3];
-}
-
-#define CONTINUE_UNWINDING \
- do \
- { \
- if (__gnu_unwind_frame(ue_header, context) != _URC_OK) \
- return _URC_FAILURE; \
- return _URC_CONTINUE_UNWIND; \
- } \
- while (0)
-
-// Return true if the filter spec is empty, ie throw().
-
-static bool
-empty_exception_spec (lsda_header_info *info, _Unwind_Sword filter_value)
-{
- const _Unwind_Word* e = ((const _Unwind_Word*) info->TType)
- - filter_value - 1;
-
- return *e == 0;
-}
-
-#else
-typedef const std::type_info _throw_typet;
-
-
-// Return an element from a type table.
-
-static const std::type_info *
-get_ttype_entry (lsda_header_info *info, _uleb128_t i)
-{
- _Unwind_Ptr ptr;
-
- i *= size_of_encoded_value (info->ttype_encoding);
- read_encoded_value_with_base (info->ttype_encoding, info->ttype_base,
- info->TType - i, &ptr);
-
- return reinterpret_cast<const std::type_info *>(ptr);
-}
-
-// Given the thrown type THROW_TYPE, pointer to a variable containing a
-// pointer to the exception object THROWN_PTR_P and a type CATCH_TYPE to
-// compare against, return whether or not there is a match and if so,
-// update *THROWN_PTR_P.
-
-static bool
-get_adjusted_ptr (const std::type_info *catch_type,
- const std::type_info *throw_type,
- void **thrown_ptr_p)
-{
- void *thrown_ptr = *thrown_ptr_p;
-
- // Pointer types need to adjust the actual pointer, not
- // the pointer to pointer that is the exception object.
- // This also has the effect of passing pointer types
- // "by value" through the __cxa_begin_catch return value.
- if (throw_type->__is_pointer_p ())
- thrown_ptr = *(void **) thrown_ptr;
-
- if (catch_type->__do_catch (throw_type, &thrown_ptr, 1))
- {
- *thrown_ptr_p = thrown_ptr;
- return true;
- }
-
- return false;
-}
-
-// Return true if THROW_TYPE matches one if the filter types.
-
-static bool
-check_exception_spec(lsda_header_info* info, _throw_typet* throw_type,
- void* thrown_ptr, _sleb128_t filter_value)
-{
- const unsigned char *e = info->TType - filter_value - 1;
-
- while (1)
- {
- const std::type_info *catch_type;
- _uleb128_t tmp;
-
- e = read_uleb128 (e, &tmp);
-
- // Zero signals the end of the list. If we've not found
- // a match by now, then we've failed the specification.
- if (tmp == 0)
- return false;
-
- // Match a ttype entry.
- catch_type = get_ttype_entry (info, tmp);
-
- // ??? There is currently no way to ask the RTTI code about the
- // relationship between two types without reference to a specific
- // object. There should be; then we wouldn't need to mess with
- // thrown_ptr here.
- if (get_adjusted_ptr (catch_type, throw_type, &thrown_ptr))
- return true;
- }
-}
-
-
-// Save stage1 handler information in the exception object
-
-static inline void
-save_caught_exception(struct _Unwind_Exception* ue_header,
- struct _Unwind_Context* context
- __attribute__((__unused__)),
- void* thrown_ptr,
- int handler_switch_value,
- const unsigned char* language_specific_data,
- _Unwind_Ptr landing_pad __attribute__((__unused__)),
- const unsigned char* action_record)
-{
- __cxa_exception* xh = __get_exception_header_from_ue(ue_header);
-
- xh->handlerSwitchValue = handler_switch_value;
- xh->actionRecord = action_record;
- xh->languageSpecificData = language_specific_data;
- xh->adjustedPtr = thrown_ptr;
-
- // ??? Completely unknown what this field is supposed to be for.
- // ??? Need to cache TType encoding base for call_unexpected.
- xh->catchTemp = landing_pad;
-}
-
-
-// Restore the catch handler information saved during phase1.
-
-static inline void
-restore_caught_exception(struct _Unwind_Exception* ue_header,
- int& handler_switch_value,
- const unsigned char*& language_specific_data,
- _Unwind_Ptr& landing_pad)
-{
- __cxa_exception* xh = __get_exception_header_from_ue(ue_header);
- handler_switch_value = xh->handlerSwitchValue;
- language_specific_data = xh->languageSpecificData;
- landing_pad = (_Unwind_Ptr) xh->catchTemp;
-}
-
-#define CONTINUE_UNWINDING return _URC_CONTINUE_UNWIND
-
-// Return true if the filter spec is empty, ie throw().
-
-static bool
-empty_exception_spec (lsda_header_info *info, _Unwind_Sword filter_value)
-{
- const unsigned char *e = info->TType - filter_value - 1;
- _uleb128_t tmp;
-
- e = read_uleb128 (e, &tmp);
- return tmp == 0;
-}
-
-#endif // !__ARM_EABI_UNWINDER__
-
-namespace __cxxabiv1
-{
-
-// Using a different personality function name causes link failures
-// when trying to mix code using different exception handling models.
-#ifdef _GLIBCXX_SJLJ_EXCEPTIONS
-#define PERSONALITY_FUNCTION __gxx_personality_sj0
-#define __builtin_eh_return_data_regno(x) x
-#else
-#define PERSONALITY_FUNCTION __gxx_personality_v0
-#endif
-
-extern "C" _Unwind_Reason_Code
-#ifdef __ARM_EABI_UNWINDER__
-PERSONALITY_FUNCTION (_Unwind_State state,
- struct _Unwind_Exception* ue_header,
- struct _Unwind_Context* context)
-#else
-PERSONALITY_FUNCTION (int version,
- _Unwind_Action actions,
- _Unwind_Exception_Class exception_class,
- struct _Unwind_Exception *ue_header,
- struct _Unwind_Context *context)
-#endif
-{
- enum found_handler_type
- {
- found_nothing,
- found_terminate,
- found_cleanup,
- found_handler
- } found_type;
-
- lsda_header_info info;
- const unsigned char *language_specific_data;
- const unsigned char *action_record;
- const unsigned char *p;
- _Unwind_Ptr landing_pad, ip;
- int handler_switch_value;
- void* thrown_ptr = 0;
- bool foreign_exception;
- int ip_before_insn = 0;
-
-#ifdef __ARM_EABI_UNWINDER__
- _Unwind_Action actions;
-
- switch (state & _US_ACTION_MASK)
- {
- case _US_VIRTUAL_UNWIND_FRAME:
- actions = _UA_SEARCH_PHASE;
- break;
-
- case _US_UNWIND_FRAME_STARTING:
- actions = _UA_CLEANUP_PHASE;
- if (!(state & _US_FORCE_UNWIND)
- && ue_header->barrier_cache.sp == _Unwind_GetGR(context, 13))
- actions |= _UA_HANDLER_FRAME;
- break;
-
- case _US_UNWIND_FRAME_RESUME:
- CONTINUE_UNWINDING;
- break;
-
- default:
- std::abort();
- }
- actions |= state & _US_FORCE_UNWIND;
-
- // We don't know which runtime we're working with, so can't check this.
- // However the ABI routines hide this from us, and we don't actually need
- // to know.
- foreign_exception = false;
-
- // The dwarf unwinder assumes the context structure holds things like the
- // function and LSDA pointers. The ARM implementation caches these in
- // the exception header (UCB). To avoid rewriting everything we make the
- // virtual IP register point at the UCB.
- ip = (_Unwind_Ptr) ue_header;
- _Unwind_SetGR(context, 12, ip);
-#else
- __cxa_exception* xh = __get_exception_header_from_ue(ue_header);
-
- // Interface version check.
- if (version != 1)
- return _URC_FATAL_PHASE1_ERROR;
- foreign_exception = !__is_gxx_exception_class(exception_class);
-#endif
-
- // Shortcut for phase 2 found handler for domestic exception.
- if (actions == (_UA_CLEANUP_PHASE | _UA_HANDLER_FRAME)
- && !foreign_exception)
- {
- restore_caught_exception(ue_header, handler_switch_value,
- language_specific_data, landing_pad);
- found_type = (landing_pad == 0 ? found_terminate : found_handler);
- goto install_context;
- }
-
- language_specific_data = (const unsigned char *)
- _Unwind_GetLanguageSpecificData (context);
-
- // If no LSDA, then there are no handlers or cleanups.
- if (! language_specific_data)
- CONTINUE_UNWINDING;
-
- // Parse the LSDA header.
- p = parse_lsda_header (context, language_specific_data, &info);
- info.ttype_base = base_of_encoded_value (info.ttype_encoding, context);
-#ifdef _GLIBCXX_HAVE_GETIPINFO
- ip = _Unwind_GetIPInfo (context, &ip_before_insn);
-#else
- ip = _Unwind_GetIP (context);
-#endif
- if (! ip_before_insn)
- --ip;
- landing_pad = 0;
- action_record = 0;
- handler_switch_value = 0;
-
-#ifdef _GLIBCXX_SJLJ_EXCEPTIONS
- // The given "IP" is an index into the call-site table, with two
- // exceptions -- -1 means no-action, and 0 means terminate. But
- // since we're using uleb128 values, we've not got random access
- // to the array.
- if ((int) ip < 0)
- return _URC_CONTINUE_UNWIND;
- else if (ip == 0)
- {
- // Fall through to set found_terminate.
- }
- else
- {
- _uleb128_t cs_lp, cs_action;
- do
- {
- p = read_uleb128 (p, &cs_lp);
- p = read_uleb128 (p, &cs_action);
- }
- while (--ip);
-
- // Can never have null landing pad for sjlj -- that would have
- // been indicated by a -1 call site index.
- landing_pad = cs_lp + 1;
- if (cs_action)
- action_record = info.action_table + cs_action - 1;
- goto found_something;
- }
-#else
- // Search the call-site table for the action associated with this IP.
- while (p < info.action_table)
- {
- _Unwind_Ptr cs_start, cs_len, cs_lp;
- _uleb128_t cs_action;
-
- // Note that all call-site encodings are "absolute" displacements.
- p = read_encoded_value (0, info.call_site_encoding, p, &cs_start);
- p = read_encoded_value (0, info.call_site_encoding, p, &cs_len);
- p = read_encoded_value (0, info.call_site_encoding, p, &cs_lp);
- p = read_uleb128 (p, &cs_action);
-
- // The table is sorted, so if we've passed the ip, stop.
- if (ip < info.Start + cs_start)
- p = info.action_table;
- else if (ip < info.Start + cs_start + cs_len)
- {
- if (cs_lp)
- landing_pad = info.LPStart + cs_lp;
- if (cs_action)
- action_record = info.action_table + cs_action - 1;
- goto found_something;
- }
- }
-#endif // _GLIBCXX_SJLJ_EXCEPTIONS
-
- // If ip is not present in the table, call terminate. This is for
- // a destructor inside a cleanup, or a library routine the compiler
- // was not expecting to throw.
- found_type = found_terminate;
- goto do_something;
-
- found_something:
- if (landing_pad == 0)
- {
- // If ip is present, and has a null landing pad, there are
- // no cleanups or handlers to be run.
- found_type = found_nothing;
- }
- else if (action_record == 0)
- {
- // If ip is present, has a non-null landing pad, and a null
- // action table offset, then there are only cleanups present.
- // Cleanups use a zero switch value, as set above.
- found_type = found_cleanup;
- }
- else
- {
- // Otherwise we have a catch handler or exception specification.
-
- _sleb128_t ar_filter, ar_disp;
- const std::type_info* catch_type;
- _throw_typet* throw_type;
- bool saw_cleanup = false;
- bool saw_handler = false;
-
-#ifdef __ARM_EABI_UNWINDER__
- // ??? How does this work - more importantly, how does it interact with
- // dependent exceptions?
- throw_type = ue_header;
- if (actions & _UA_FORCE_UNWIND)
- {
- __GXX_INIT_FORCED_UNWIND_CLASS(ue_header->exception_class);
- }
- else if (!foreign_exception)
- thrown_ptr = __get_object_from_ue (ue_header);
-#else
- // During forced unwinding, match a magic exception type.
- if (actions & _UA_FORCE_UNWIND)
- {
- throw_type = &typeid(abi::__forced_unwind);
- }
- // With a foreign exception class, there's no exception type.
- // ??? What to do about GNU Java and GNU Ada exceptions?
- else if (foreign_exception)
- {
- throw_type = &typeid(abi::__foreign_exception);
- }
- else
- {
- thrown_ptr = __get_object_from_ue (ue_header);
- throw_type = __get_exception_header_from_obj
- (thrown_ptr)->exceptionType;
- }
-#endif
-
- while (1)
- {
- p = action_record;
- p = read_sleb128 (p, &ar_filter);
- read_sleb128 (p, &ar_disp);
-
- if (ar_filter == 0)
- {
- // Zero filter values are cleanups.
- saw_cleanup = true;
- }
- else if (ar_filter > 0)
- {
- // Positive filter values are handlers.
- catch_type = get_ttype_entry (&info, ar_filter);
-
- // Null catch type is a catch-all handler; we can catch foreign
- // exceptions with this. Otherwise we must match types.
- if (! catch_type
- || (throw_type
- && get_adjusted_ptr (catch_type, throw_type,
- &thrown_ptr)))
- {
- saw_handler = true;
- break;
- }
- }
- else
- {
- // Negative filter values are exception specifications.
- // ??? How do foreign exceptions fit in? As far as I can
- // see we can't match because there's no __cxa_exception
- // object to stuff bits in for __cxa_call_unexpected to use.
- // Allow them iff the exception spec is non-empty. I.e.
- // a throw() specification results in __unexpected.
- if ((throw_type
- && !(actions & _UA_FORCE_UNWIND)
- && !foreign_exception)
- ? ! check_exception_spec (&info, throw_type, thrown_ptr,
- ar_filter)
- : empty_exception_spec (&info, ar_filter))
- {
- saw_handler = true;
- break;
- }
- }
-
- if (ar_disp == 0)
- break;
- action_record = p + ar_disp;
- }
-
- if (saw_handler)
- {
- handler_switch_value = ar_filter;
- found_type = found_handler;
- }
- else
- found_type = (saw_cleanup ? found_cleanup : found_nothing);
- }
-
- do_something:
- if (found_type == found_nothing)
- CONTINUE_UNWINDING;
-
- if (actions & _UA_SEARCH_PHASE)
- {
- if (found_type == found_cleanup)
- CONTINUE_UNWINDING;
-
- // For domestic exceptions, we cache data from phase 1 for phase 2.
- if (!foreign_exception)
- {
- save_caught_exception(ue_header, context, thrown_ptr,
- handler_switch_value, language_specific_data,
- landing_pad, action_record);
- }
- return _URC_HANDLER_FOUND;
- }
-
- install_context:
-
- // We can't use any of the cxa routines with foreign exceptions,
- // because they all expect ue_header to be a struct __cxa_exception.
- // So in that case, call terminate or unexpected directly.
- if ((actions & _UA_FORCE_UNWIND)
- || foreign_exception)
- {
- if (found_type == found_terminate)
- std::terminate ();
- else if (handler_switch_value < 0)
- {
- __try
- { std::unexpected (); }
- __catch(...)
- { std::terminate (); }
- }
- }
- else
- {
- if (found_type == found_terminate)
- __cxa_call_terminate(ue_header);
-
- // Cache the TType base value for __cxa_call_unexpected, as we won't
- // have an _Unwind_Context then.
- if (handler_switch_value < 0)
- {
- parse_lsda_header (context, language_specific_data, &info);
-
-#ifdef __ARM_EABI_UNWINDER__
- const _Unwind_Word* e;
- _Unwind_Word n;
-
- e = ((const _Unwind_Word*) info.TType) - handler_switch_value - 1;
- // Count the number of rtti objects.
- n = 0;
- while (e[n] != 0)
- n++;
-
- // Count.
- ue_header->barrier_cache.bitpattern[1] = n;
- // Base (obsolete)
- ue_header->barrier_cache.bitpattern[2] = 0;
- // Stride.
- ue_header->barrier_cache.bitpattern[3] = 4;
- // List head.
- ue_header->barrier_cache.bitpattern[4] = (_Unwind_Word) e;
-#else
- xh->catchTemp = base_of_encoded_value (info.ttype_encoding, context);
-#endif
- }
- }
-
- /* For targets with pointers smaller than the word size, we must extend the
- pointer, and this extension is target dependent. */
- _Unwind_SetGR (context, __builtin_eh_return_data_regno (0),
- __builtin_extend_pointer (ue_header));
- _Unwind_SetGR (context, __builtin_eh_return_data_regno (1),
- handler_switch_value);
- _Unwind_SetIP (context, landing_pad);
-#ifdef __ARM_EABI_UNWINDER__
- if (found_type == found_cleanup)
- __cxa_begin_cleanup(ue_header);
-#endif
- return _URC_INSTALL_CONTEXT;
-}
-
-/* The ARM EABI implementation of __cxa_call_unexpected is in a
- different file so that the personality routine (PR) can be used
- standalone. The generic routine shared datastructures with the PR
- so it is most convenient to implement it here. */
-#ifndef __ARM_EABI_UNWINDER__
-extern "C" void
-__cxa_call_unexpected (void *exc_obj_in)
-{
- _Unwind_Exception *exc_obj
- = reinterpret_cast <_Unwind_Exception *>(exc_obj_in);
-
- __cxa_begin_catch (exc_obj);
-
- // This function is a handler for our exception argument. If we exit
- // by throwing a different exception, we'll need the original cleaned up.
- struct end_catch_protect
- {
- end_catch_protect() { }
- ~end_catch_protect() { __cxa_end_catch(); }
- } end_catch_protect_obj;
-
- lsda_header_info info;
- __cxa_exception *xh = __get_exception_header_from_ue (exc_obj);
- const unsigned char *xh_lsda;
- _Unwind_Sword xh_switch_value;
- std::terminate_handler xh_terminate_handler;
-
- // If the unexpectedHandler rethrows the exception (e.g. to categorize it),
- // it will clobber data about the current handler. So copy the data out now.
- xh_lsda = xh->languageSpecificData;
- xh_switch_value = xh->handlerSwitchValue;
- xh_terminate_handler = xh->terminateHandler;
- info.ttype_base = (_Unwind_Ptr) xh->catchTemp;
-
- __try
- { __unexpected (xh->unexpectedHandler); }
- __catch(...)
- {
- // Get the exception thrown from unexpected.
-
- __cxa_eh_globals *globals = __cxa_get_globals_fast ();
- __cxa_exception *new_xh = globals->caughtExceptions;
- void *new_ptr = __get_object_from_ambiguous_exception (new_xh);
-
- // We don't quite have enough stuff cached; re-parse the LSDA.
- parse_lsda_header (0, xh_lsda, &info);
-
- // If this new exception meets the exception spec, allow it.
- if (check_exception_spec (&info, __get_exception_header_from_obj
- (new_ptr)->exceptionType,
- new_ptr, xh_switch_value))
- __throw_exception_again;
-
- // If the exception spec allows std::bad_exception, throw that.
- // We don't have a thrown object to compare against, but since
- // bad_exception doesn't have virtual bases, that's OK; just pass 0.
-#ifdef __EXCEPTIONS
- const std::type_info &bad_exc = typeid (std::bad_exception);
- if (check_exception_spec (&info, &bad_exc, 0, xh_switch_value))
- throw std::bad_exception();
-#endif
-
- // Otherwise, die.
- __terminate (xh_terminate_handler);
- }
-}
-#endif
-
-} // namespace __cxxabiv1
diff --git a/gcc-4.4.3/libstdc++-v3/libsupc++/eh_ptr.cc b/gcc-4.4.3/libstdc++-v3/libsupc++/eh_ptr.cc
deleted file mode 100644
index a16b61e09..000000000
--- a/gcc-4.4.3/libstdc++-v3/libsupc++/eh_ptr.cc
+++ /dev/null
@@ -1,244 +0,0 @@
-// -*- C++ -*- Implement the members of exception_ptr.
-// Copyright (C) 2008, 2009 Free Software Foundation, Inc.
-//
-// This file is part of GCC.
-//
-// GCC 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 3, or (at your option)
-// any later version.
-//
-// GCC 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.
-//
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-#include <bits/c++config.h>
-
-#ifdef _GLIBCXX_ATOMIC_BUILTINS_4
-
-#define _GLIBCXX_EH_PTR_COMPAT
-
-#include <exception>
-#include <exception_ptr.h>
-#include "unwind-cxx.h"
-
-using namespace __cxxabiv1;
-
-std::__exception_ptr::exception_ptr::exception_ptr() throw()
- : _M_exception_object(0)
-{
-}
-
-
-std::__exception_ptr::exception_ptr::exception_ptr(void* obj) throw()
- : _M_exception_object(obj)
-{
- _M_addref();
-}
-
-
-std::__exception_ptr::exception_ptr::exception_ptr(__safe_bool) throw()
- : _M_exception_object(0)
-{
-}
-
-
-std::__exception_ptr::exception_ptr::exception_ptr(
- const exception_ptr& other) throw()
- : _M_exception_object(other._M_exception_object)
-{
- _M_addref();
-}
-
-
-std::__exception_ptr::exception_ptr::~exception_ptr() throw()
-{
- _M_release();
-}
-
-
-std::__exception_ptr::exception_ptr&
-std::__exception_ptr::exception_ptr::operator=(
- const exception_ptr& other) throw()
-{
- exception_ptr(other).swap(*this);
- return *this;
-}
-
-
-void
-std::__exception_ptr::exception_ptr::_M_addref() throw()
-{
- if (_M_exception_object)
- {
- __cxa_refcounted_exception *eh =
- __get_refcounted_exception_header_from_obj (_M_exception_object);
- __sync_add_and_fetch (&eh->referenceCount, 1);
- }
-}
-
-
-void
-std::__exception_ptr::exception_ptr::_M_release() throw()
-{
- if (_M_exception_object)
- {
- __cxa_refcounted_exception *eh =
- __get_refcounted_exception_header_from_obj (_M_exception_object);
- if (__sync_sub_and_fetch (&eh->referenceCount, 1) == 0)
- {
- if (eh->exc.exceptionDestructor)
- eh->exc.exceptionDestructor (_M_exception_object);
-
- __cxa_free_exception (_M_exception_object);
- _M_exception_object = 0;
- }
- }
-}
-
-
-void*
-std::__exception_ptr::exception_ptr::_M_get() const throw()
-{
- return _M_exception_object;
-}
-
-
-void
-std::__exception_ptr::exception_ptr::_M_safe_bool_dummy()
-{
-}
-
-
-void
-std::__exception_ptr::exception_ptr::swap(exception_ptr &other) throw()
-{
- void *tmp = _M_exception_object;
- _M_exception_object = other._M_exception_object;
- other._M_exception_object = tmp;
-}
-
-
-// Retained for compatibility with CXXABI_1.3.
-bool
-std::__exception_ptr::exception_ptr::operator!() const throw()
-{
- return _M_exception_object == 0;
-}
-
-
-// Retained for compatibility with CXXABI_1.3.
-std::__exception_ptr::exception_ptr::operator __safe_bool() const throw()
-{
- return _M_exception_object ? &exception_ptr::_M_safe_bool_dummy : 0;
-}
-
-
-const std::type_info*
-std::__exception_ptr::exception_ptr::__cxa_exception_type() const throw()
-{
- __cxa_exception *eh = __get_exception_header_from_obj (_M_exception_object);
- return eh->exceptionType;
-}
-
-
-bool std::__exception_ptr::operator==(const exception_ptr& lhs,
- const exception_ptr& rhs) throw()
-{
- return lhs._M_exception_object == rhs._M_exception_object;
-}
-
-
-bool std::__exception_ptr::operator!=(const exception_ptr& lhs,
- const exception_ptr& rhs) throw()
-{
- return !(lhs == rhs);
-}
-
-
-std::exception_ptr
-std::current_exception() throw()
-{
- __cxa_eh_globals *globals = __cxa_get_globals ();
- __cxa_exception *header = globals->caughtExceptions;
-
- if (!header)
- return std::exception_ptr();
-
- // Since foreign exceptions can't be counted, we can't return them.
- if (!__is_gxx_exception_class (header->unwindHeader.exception_class))
- return std::exception_ptr();
-
- return std::exception_ptr(
- __get_object_from_ambiguous_exception (header));
-}
-
-
-static void
-__gxx_dependent_exception_cleanup (_Unwind_Reason_Code code,
- _Unwind_Exception *exc)
-{
- // This cleanup is set only for dependents.
- __cxa_dependent_exception *dep = __get_dependent_exception_from_ue (exc);
- __cxa_refcounted_exception *header =
- __get_refcounted_exception_header_from_obj (dep->primaryException);
-
- // We only want to be called through _Unwind_DeleteException.
- // _Unwind_DeleteException in the HP-UX IA64 libunwind library
- // returns _URC_NO_REASON and not _URC_FOREIGN_EXCEPTION_CAUGHT
- // like the GCC _Unwind_DeleteException function does.
- if (code != _URC_FOREIGN_EXCEPTION_CAUGHT && code != _URC_NO_REASON)
- __terminate (header->exc.terminateHandler);
-
- __cxa_free_dependent_exception (dep);
-
- if (__sync_sub_and_fetch (&header->referenceCount, 1) == 0)
- {
- if (header->exc.exceptionDestructor)
- header->exc.exceptionDestructor (header + 1);
-
- __cxa_free_exception (header + 1);
- }
-}
-
-
-void
-std::rethrow_exception(std::exception_ptr ep)
-{
- void *obj = ep._M_get();
- __cxa_refcounted_exception *eh
- = __get_refcounted_exception_header_from_obj (obj);
-
- __cxa_dependent_exception *dep = __cxa_allocate_dependent_exception ();
- dep->primaryException = obj;
- __sync_add_and_fetch (&eh->referenceCount, 1);
-
- dep->unexpectedHandler = __unexpected_handler;
- dep->terminateHandler = __terminate_handler;
- __GXX_INIT_DEPENDENT_EXCEPTION_CLASS(dep->unwindHeader.exception_class);
- dep->unwindHeader.exception_cleanup = __gxx_dependent_exception_cleanup;
-
-#ifdef _GLIBCXX_SJLJ_EXCEPTIONS
- _Unwind_SjLj_RaiseException (&dep->unwindHeader);
-#else
- _Unwind_RaiseException (&dep->unwindHeader);
-#endif
-
- // Some sort of unwinding error. Note that terminate is a handler.
- __cxa_begin_catch (&dep->unwindHeader);
- std::terminate ();
-}
-
-#undef _GLIBCXX_EH_PTR_COMPAT
-
-#endif
diff --git a/gcc-4.4.3/libstdc++-v3/libsupc++/eh_term_handler.cc b/gcc-4.4.3/libstdc++-v3/libsupc++/eh_term_handler.cc
deleted file mode 100644
index 52a074596..000000000
--- a/gcc-4.4.3/libstdc++-v3/libsupc++/eh_term_handler.cc
+++ /dev/null
@@ -1,46 +0,0 @@
-// -*- C++ -*- std::terminate handler
-// Copyright (C) 2002, 2003, 2009 Free Software Foundation
-//
-// This file is part of GCC.
-//
-// GCC 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 3, or (at your option)
-// any later version.
-//
-// GCC 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.
-//
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-#include <bits/c++config.h>
-#include "unwind-cxx.h"
-
-/* We default to the talkative, informative handler in a normal hosted
- library. This pulls in the demangler, the dyn-string utilities, and
- elements of the I/O library. For a low-memory environment, you can return
- to the earlier "silent death" handler by including <cstdlib>, initializing
- to "std::abort", and rebuilding the library. In a freestanding mode, we
- default to this latter approach. */
-
-#if ! _GLIBCXX_HOSTED
-# include <cstdlib>
-#endif
-
-/* The current installed user handler. */
-std::terminate_handler __cxxabiv1::__terminate_handler =
-#if _GLIBCXX_HOSTED
- __gnu_cxx::__verbose_terminate_handler;
-#else
- std::abort;
-#endif
-
diff --git a/gcc-4.4.3/libstdc++-v3/libsupc++/eh_terminate.cc b/gcc-4.4.3/libstdc++-v3/libsupc++/eh_terminate.cc
deleted file mode 100644
index d0c846100..000000000
--- a/gcc-4.4.3/libstdc++-v3/libsupc++/eh_terminate.cc
+++ /dev/null
@@ -1,78 +0,0 @@
-// -*- C++ -*- std::terminate, std::unexpected and friends.
-// Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2009
-// Free Software Foundation
-//
-// This file is part of GCC.
-//
-// GCC 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 3, or (at your option)
-// any later version.
-//
-// GCC 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.
-//
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-#include "typeinfo"
-#include "exception"
-#include <cstdlib>
-#include "unwind-cxx.h"
-#include "exception_defines.h"
-
-using namespace __cxxabiv1;
-
-void
-__cxxabiv1::__terminate (std::terminate_handler handler)
-{
- try {
- handler ();
- std::abort ();
- } catch (...) {
- std::abort ();
- }
-}
-
-void
-std::terminate ()
-{
- __terminate (__terminate_handler);
-}
-
-void
-__cxxabiv1::__unexpected (std::unexpected_handler handler)
-{
- handler();
- std::terminate ();
-}
-
-void
-std::unexpected ()
-{
- __unexpected (__unexpected_handler);
-}
-
-std::terminate_handler
-std::set_terminate (std::terminate_handler func) throw()
-{
- std::terminate_handler old = __terminate_handler;
- __terminate_handler = func;
- return old;
-}
-
-std::unexpected_handler
-std::set_unexpected (std::unexpected_handler func) throw()
-{
- std::unexpected_handler old = __unexpected_handler;
- __unexpected_handler = func;
- return old;
-}
diff --git a/gcc-4.4.3/libstdc++-v3/libsupc++/eh_throw.cc b/gcc-4.4.3/libstdc++-v3/libsupc++/eh_throw.cc
deleted file mode 100644
index 78cfc1395..000000000
--- a/gcc-4.4.3/libstdc++-v3/libsupc++/eh_throw.cc
+++ /dev/null
@@ -1,117 +0,0 @@
-// -*- C++ -*- Exception handling routines for throwing.
-// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
-// Free Software Foundation, Inc.
-//
-// This file is part of GCC.
-//
-// GCC 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 3, or (at your option)
-// any later version.
-//
-// GCC 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.
-//
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-#include <bits/c++config.h>
-#include "unwind-cxx.h"
-
-using namespace __cxxabiv1;
-
-
-static void
-__gxx_exception_cleanup (_Unwind_Reason_Code code, _Unwind_Exception *exc)
-{
- // This cleanup is set only for primaries.
- __cxa_refcounted_exception *header
- = __get_refcounted_exception_header_from_ue (exc);
-
- // We only want to be called through _Unwind_DeleteException.
- // _Unwind_DeleteException in the HP-UX IA64 libunwind library
- // returns _URC_NO_REASON and not _URC_FOREIGN_EXCEPTION_CAUGHT
- // like the GCC _Unwind_DeleteException function does.
- if (code != _URC_FOREIGN_EXCEPTION_CAUGHT && code != _URC_NO_REASON)
- __terminate (header->exc.terminateHandler);
-
-#ifdef _GLIBCXX_ATOMIC_BUILTINS_4
- if (__sync_sub_and_fetch (&header->referenceCount, 1) == 0)
- {
-#endif
- if (header->exc.exceptionDestructor)
- header->exc.exceptionDestructor (header + 1);
-
- __cxa_free_exception (header + 1);
-#ifdef _GLIBCXX_ATOMIC_BUILTINS_4
- }
-#endif
-}
-
-
-extern "C" void
-__cxxabiv1::__cxa_throw (void *obj, std::type_info *tinfo,
- void (*dest) (void *))
-{
- // Definitely a primary.
- __cxa_refcounted_exception *header
- = __get_refcounted_exception_header_from_obj (obj);
- header->referenceCount = 1;
- header->exc.exceptionType = tinfo;
- header->exc.exceptionDestructor = dest;
- header->exc.unexpectedHandler = __unexpected_handler;
- header->exc.terminateHandler = __terminate_handler;
- __GXX_INIT_PRIMARY_EXCEPTION_CLASS(header->exc.unwindHeader.exception_class);
- header->exc.unwindHeader.exception_cleanup = __gxx_exception_cleanup;
-
-#ifdef _GLIBCXX_SJLJ_EXCEPTIONS
- _Unwind_SjLj_RaiseException (&header->exc.unwindHeader);
-#else
- _Unwind_RaiseException (&header->exc.unwindHeader);
-#endif
-
- // Some sort of unwinding error. Note that terminate is a handler.
- __cxa_begin_catch (&header->exc.unwindHeader);
- std::terminate ();
-}
-
-extern "C" void
-__cxxabiv1::__cxa_rethrow ()
-{
- __cxa_eh_globals *globals = __cxa_get_globals ();
- __cxa_exception *header = globals->caughtExceptions;
-
- globals->uncaughtExceptions += 1;
-
- // Watch for luser rethrowing with no active exception.
- if (header)
- {
- // Tell __cxa_end_catch this is a rethrow.
- if (!__is_gxx_exception_class(header->unwindHeader.exception_class))
- globals->caughtExceptions = 0;
- else
- header->handlerCount = -header->handlerCount;
-
-#ifdef _GLIBCXX_SJLJ_EXCEPTIONS
- _Unwind_SjLj_Resume_or_Rethrow (&header->unwindHeader);
-#else
-#if defined(_LIBUNWIND_STD_ABI)
- _Unwind_RaiseException (&header->unwindHeader);
-#else
- _Unwind_Resume_or_Rethrow (&header->unwindHeader);
-#endif
-#endif
-
- // Some sort of unwinding error. Note that terminate is a handler.
- __cxa_begin_catch (&header->unwindHeader);
- }
- std::terminate ();
-}
diff --git a/gcc-4.4.3/libstdc++-v3/libsupc++/eh_type.cc b/gcc-4.4.3/libstdc++-v3/libsupc++/eh_type.cc
deleted file mode 100644
index f0277d401..000000000
--- a/gcc-4.4.3/libstdc++-v3/libsupc++/eh_type.cc
+++ /dev/null
@@ -1,54 +0,0 @@
-// -*- C++ -*- Exception handling routines for catching.
-// Copyright (C) 2001, 2008, 2009 Free Software Foundation, Inc.
-//
-// This file is part of GCC.
-//
-// GCC 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 3, or (at your option)
-// any later version.
-//
-// GCC 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.
-//
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-
-#include <typeinfo>
-#include <cxxabi.h>
-#include "unwind-cxx.h"
-
-namespace __cxxabiv1
-{
-
-// Returns the type_info for the currently handled exception [15.3/8], or
-// null if there is none.
-extern "C"
-std::type_info *__cxa_current_exception_type ()
-{
- __cxa_eh_globals *globals = __cxa_get_globals ();
- __cxa_exception *header = globals->caughtExceptions;
- if (header)
- {
- if (__is_dependent_exception (header->unwindHeader.exception_class))
- {
- __cxa_dependent_exception *de =
- __get_dependent_exception_from_ue (&header->unwindHeader);
- header = __get_exception_header_from_obj (de->primaryException);
- }
- return header->exceptionType;
- }
- else
- return 0;
-}
-
-} // namespace __cxxabiv1
diff --git a/gcc-4.4.3/libstdc++-v3/libsupc++/eh_unex_handler.cc b/gcc-4.4.3/libstdc++-v3/libsupc++/eh_unex_handler.cc
deleted file mode 100644
index e4f390620..000000000
--- a/gcc-4.4.3/libstdc++-v3/libsupc++/eh_unex_handler.cc
+++ /dev/null
@@ -1,29 +0,0 @@
-// -*- C++ -*- std::unexpected handler
-// Copyright (C) 2002, 2009 Free Software Foundation
-//
-// This file is part of GCC.
-//
-// GCC 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 3, or (at your option)
-// any later version.
-//
-// GCC 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.
-//
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-#include "unwind-cxx.h"
-
-/* The current installed user handler. */
-std::unexpected_handler __cxxabiv1::__unexpected_handler = std::terminate;
-
diff --git a/gcc-4.4.3/libstdc++-v3/libsupc++/enum_type_info.cc b/gcc-4.4.3/libstdc++-v3/libsupc++/enum_type_info.cc
deleted file mode 100644
index 1e87b4dbe..000000000
--- a/gcc-4.4.3/libstdc++-v3/libsupc++/enum_type_info.cc
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 1994, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2007, 2009
-// Free Software Foundation
-//
-// This file is part of GCC.
-//
-// GCC 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 3, or (at your option)
-// any later version.
-
-// GCC 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.
-
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-#include "tinfo.h"
-
-namespace __cxxabiv1 {
-
-__enum_type_info::
-~__enum_type_info ()
-{}
-
-}
diff --git a/gcc-4.4.3/libstdc++-v3/libsupc++/exception b/gcc-4.4.3/libstdc++-v3/libsupc++/exception
deleted file mode 100644
index 7fa929b6a..000000000
--- a/gcc-4.4.3/libstdc++-v3/libsupc++/exception
+++ /dev/null
@@ -1,151 +0,0 @@
-// Exception Handling support header for -*- C++ -*-
-
-// Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
-// 2004, 2005, 2006, 2007, 2008, 2009
-// Free Software Foundation
-//
-// This file is part of GCC.
-//
-// GCC 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 3, or (at your option)
-// any later version.
-//
-// GCC 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.
-//
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-/** @file exception
- * This is a Standard C++ Library header.
- */
-
-#ifndef __EXCEPTION__
-#define __EXCEPTION__
-
-#pragma GCC visibility push(default)
-
-#include <bits/c++config.h>
-
-extern "C++" {
-
-namespace std
-{
- /**
- * @defgroup exceptions Exceptions
- * @ingroup diagnostics
- *
- * Classes and functions for reporting errors via exception classes.
- * @{
- */
-
- /**
- * @brief Base class for all library exceptions.
- *
- * This is the base class for all exceptions thrown by the standard
- * library, and by certain language expressions. You are free to derive
- * your own %exception classes, or use a different hierarchy, or to
- * throw non-class data (e.g., fundamental types).
- */
- class exception
- {
- public:
- exception() throw() { }
- virtual ~exception() throw();
-
- /** Returns a C-style character string describing the general cause
- * of the current error. */
- virtual const char* what() const throw();
- };
-
- /** If an %exception is thrown which is not listed in a function's
- * %exception specification, one of these may be thrown. */
- class bad_exception : public exception
- {
- public:
- bad_exception() throw() { }
-
- // This declaration is not useless:
- // http://gcc.gnu.org/onlinedocs/gcc-3.0.2/gcc_6.html#SEC118
- virtual ~bad_exception() throw();
-
- // See comment in eh_exception.cc.
- virtual const char* what() const throw();
- };
-
- /// If you write a replacement %terminate handler, it must be of this type.
- typedef void (*terminate_handler) ();
-
- /// If you write a replacement %unexpected handler, it must be of this type.
- typedef void (*unexpected_handler) ();
-
- /// Takes a new handler function as an argument, returns the old function.
- terminate_handler set_terminate(terminate_handler) throw();
-
- /** The runtime will call this function if %exception handling must be
- * abandoned for any reason. It can also be called by the user. */
- void terminate() __attribute__ ((__noreturn__));
-
- /// Takes a new handler function as an argument, returns the old function.
- unexpected_handler set_unexpected(unexpected_handler) throw();
-
- /** The runtime will call this function if an %exception is thrown which
- * violates the function's %exception specification. */
- void unexpected() __attribute__ ((__noreturn__));
-
- /** [18.6.4]/1: "Returns true after completing evaluation of a
- * throw-expression until either completing initialization of the
- * exception-declaration in the matching handler or entering @c unexpected()
- * due to the throw; or after entering @c terminate() for any reason
- * other than an explicit call to @c terminate(). [Note: This includes
- * stack unwinding [15.2]. end note]"
- *
- * 2: "When @c uncaught_exception() is true, throwing an %exception can
- * result in a call of @c terminate() (15.5.1)."
- */
- bool uncaught_exception() throw();
-
- // @} group exceptions
-} // namespace std
-
-_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
-
- /**
- * @brief A replacement for the standard terminate_handler which
- * prints more information about the terminating exception (if any)
- * on stderr.
- *
- * @ingroup exceptions
- *
- * Call
- * @code
- * std::set_terminate(__gnu_cxx::__verbose_terminate_handler)
- * @endcode
- * to use. For more info, see
- * http://gcc.gnu.org/onlinedocs/libstdc++/manual/bk01pt02ch06s02.html
- *
- * In 3.4 and later, this is on by default.
- */
- void __verbose_terminate_handler();
-
-_GLIBCXX_END_NAMESPACE
-
-} // extern "C++"
-
-#pragma GCC visibility pop
-
-#if (defined(__GXX_EXPERIMENTAL_CXX0X__) \
- && defined(_GLIBCXX_ATOMIC_BUILTINS_4))
-#include <exception_ptr.h>
-#endif
-
-#endif
diff --git a/gcc-4.4.3/libstdc++-v3/libsupc++/exception_defines.h b/gcc-4.4.3/libstdc++-v3/libsupc++/exception_defines.h
deleted file mode 100644
index 951d96f32..000000000
--- a/gcc-4.4.3/libstdc++-v3/libsupc++/exception_defines.h
+++ /dev/null
@@ -1,49 +0,0 @@
-// -fno-exceptions Support -*- C++ -*-
-
-// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2006, 2007, 2008, 2009
-// 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 3, 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.
-
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-//
-// ISO C++ 14882: 19.1 Exception classes
-//
-
-/** @file exception_defines.h
- * This is a Standard C++ Library header.
- */
-
-#ifndef _EXCEPTION_DEFINES_H
-#define _EXCEPTION_DEFINES_H 1
-
-#ifndef __EXCEPTIONS
-// Iff -fno-exceptions, transform error handling code to work without it.
-# define __try if (true)
-# define __catch(X) if (false)
-# define __throw_exception_again
-#else
-// Else proceed normally.
-# define __try try
-# define __catch(X) catch(X)
-# define __throw_exception_again throw
-#endif
-
-#endif
diff --git a/gcc-4.4.3/libstdc++-v3/libsupc++/exception_ptr.h b/gcc-4.4.3/libstdc++-v3/libsupc++/exception_ptr.h
deleted file mode 100644
index b24ec21d7..000000000
--- a/gcc-4.4.3/libstdc++-v3/libsupc++/exception_ptr.h
+++ /dev/null
@@ -1,171 +0,0 @@
-// Exception Handling support header (exception_ptr class) for -*- C++ -*-
-
-// Copyright (C) 2008, 2009 Free Software Foundation
-//
-// This file is part of GCC.
-//
-// GCC 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 3, or (at your option)
-// any later version.
-//
-// GCC 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.
-//
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-/** @file exception_ptr.h
- * This is an internal header file, included by other headers and the
- * implementation. You should not attempt to use it directly.
- */
-
-#ifndef _EXCEPTION_PTR_H
-#define _EXCEPTION_PTR_H
-
-#pragma GCC visibility push(default)
-
-#include <bits/c++config.h>
-#include <exception_defines.h>
-
-#if !defined(_GLIBCXX_ATOMIC_BUILTINS_4)
-# error This platform does not support exception propagation.
-#endif
-
-extern "C++" {
-
-namespace std
-{
- /**
- * @addtogroup exceptions
- * @{
- */
-
- // Hide the free operators from other types
- namespace __exception_ptr
- {
- /**
- * @brief An opaque pointer to an arbitrary exception.
- */
- class exception_ptr;
- }
-
- using __exception_ptr::exception_ptr;
-
- /** Obtain an %exception_ptr to the currently handled exception. If there
- * is none, or the currently handled exception is foreign, return the null
- * value.
- */
- exception_ptr current_exception() throw();
-
- /// Throw the object pointed to by the %exception_ptr.
- void rethrow_exception(exception_ptr) __attribute__ ((__noreturn__));
-
- /// Obtain an %exception_ptr pointing to a copy of the supplied object.
- template<typename _Ex>
- exception_ptr
- copy_exception(_Ex __ex) throw();
-
- namespace __exception_ptr
- {
- bool
- operator==(const exception_ptr&, const exception_ptr&) throw();
-
- bool
- operator!=(const exception_ptr&, const exception_ptr&) throw();
-
- class exception_ptr
- {
- void* _M_exception_object;
-
- explicit exception_ptr(void* __e) throw();
-
- void _M_addref() throw();
- void _M_release() throw();
-
- void *_M_get() const throw();
-
- void _M_safe_bool_dummy();
-
- friend exception_ptr std::current_exception() throw();
- friend void std::rethrow_exception(exception_ptr);
-
- public:
- exception_ptr() throw();
-
- typedef void (exception_ptr::*__safe_bool)();
-
- // For construction from nullptr or 0.
- exception_ptr(__safe_bool) throw();
-
- exception_ptr(const exception_ptr&) throw();
-
-#ifdef __GXX_EXPERIMENTAL_CXX0X__
- exception_ptr(exception_ptr&& __o) throw()
- : _M_exception_object(__o._M_exception_object)
- { __o._M_exception_object = 0; }
-#endif
-
- exception_ptr&
- operator=(const exception_ptr&) throw();
-
-#ifdef __GXX_EXPERIMENTAL_CXX0X__
- exception_ptr&
- operator=(exception_ptr&& __o) throw()
- {
- exception_ptr(static_cast<exception_ptr&&>(__o)).swap(*this);
- return *this;
- }
-#endif
-
- ~exception_ptr() throw();
-
- void
- swap(exception_ptr&) throw();
-
-#ifdef _GLIBCXX_EH_PTR_COMPAT
- // Retained for compatibility with CXXABI_1.3.
- bool operator!() const throw();
- operator __safe_bool() const throw();
-#endif
-
- friend bool
- operator==(const exception_ptr&, const exception_ptr&) throw();
-
- const type_info*
- __cxa_exception_type() const throw();
- };
-
- } // namespace __exception_ptr
-
-
- template<typename _Ex>
- exception_ptr
- copy_exception(_Ex __ex) throw()
- {
- __try
- {
- throw __ex;
- }
- __catch(...)
- {
- return current_exception ();
- }
- }
-
- // @} group exceptions
-} // namespace std
-
-} // extern "C++"
-
-#pragma GCC visibility pop
-
-#endif
diff --git a/gcc-4.4.3/libstdc++-v3/libsupc++/function_type_info.cc b/gcc-4.4.3/libstdc++-v3/libsupc++/function_type_info.cc
deleted file mode 100644
index e210088d2..000000000
--- a/gcc-4.4.3/libstdc++-v3/libsupc++/function_type_info.cc
+++ /dev/null
@@ -1,39 +0,0 @@
-// Copyright (C) 1994, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2007, 2009
-// Free Software Foundation
-//
-// This file is part of GCC.
-//
-// GCC 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 3, or (at your option)
-// any later version.
-
-// GCC 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.
-
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-#include "tinfo.h"
-
-namespace __cxxabiv1 {
-
-__function_type_info::
-~__function_type_info ()
-{}
-
-bool __function_type_info::
-__is_function_p () const
-{
- return true;
-}
-
-}
diff --git a/gcc-4.4.3/libstdc++-v3/libsupc++/fundamental_type_info.cc b/gcc-4.4.3/libstdc++-v3/libsupc++/fundamental_type_info.cc
deleted file mode 100644
index de069382f..000000000
--- a/gcc-4.4.3/libstdc++-v3/libsupc++/fundamental_type_info.cc
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright (C) 1994, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2007, 2009
-// Free Software Foundation
-//
-// This file is part of GCC.
-//
-// GCC 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 3, or (at your option)
-// any later version.
-
-// GCC 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.
-
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-#include "tinfo.h"
-
-namespace __cxxabiv1 {
-
-// This has special meaning to the compiler, and will cause it
-// to emit the type_info structures for the fundamental types which are
-// mandated to exist in the runtime.
-__fundamental_type_info::
-~__fundamental_type_info ()
-{}
-
-}
diff --git a/gcc-4.4.3/libstdc++-v3/libsupc++/guard.cc b/gcc-4.4.3/libstdc++-v3/libsupc++/guard.cc
deleted file mode 100644
index 37b0ffdd6..000000000
--- a/gcc-4.4.3/libstdc++-v3/libsupc++/guard.cc
+++ /dev/null
@@ -1,416 +0,0 @@
-// Copyright (C) 2002, 2004, 2006, 2008, 2009 Free Software Foundation, Inc.
-//
-// This file is part of GCC.
-//
-// GCC 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 3, or (at your option)
-// any later version.
-
-// GCC 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.
-
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-// Written by Mark Mitchell, CodeSourcery LLC, <mark@codesourcery.com>
-// Thread support written by Jason Merrill, Red Hat Inc. <jason@redhat.com>
-
-#include <bits/c++config.h>
-#include <cxxabi.h>
-#include <exception>
-#include <new>
-#include <ext/atomicity.h>
-#include <ext/concurrence.h>
-#if defined(__GTHREADS) && defined(__GTHREAD_HAS_COND) \
- && defined(_GLIBCXX_ATOMIC_BUILTINS_4) && defined(_GLIBCXX_HAVE_LINUX_FUTEX)
-# include <climits>
-#if defined(__ANDROID__)
-# include <sys/syscall.h>
-# define SYS_futex __NR_futex
-#else
-# include <syscall.h>
-#endif
-# define _GLIBCXX_USE_FUTEX
-# define _GLIBCXX_FUTEX_WAIT 0
-# define _GLIBCXX_FUTEX_WAKE 1
-#endif
-
-// The IA64/generic ABI uses the first byte of the guard variable.
-// The ARM EABI uses the least significant bit.
-
-// Thread-safe static local initialization support.
-#ifdef __GTHREADS
-# ifndef _GLIBCXX_USE_FUTEX
-namespace
-{
- // A single mutex controlling all static initializations.
- static __gnu_cxx::__recursive_mutex* static_mutex;
-
- typedef char fake_recursive_mutex[sizeof(__gnu_cxx::__recursive_mutex)]
- __attribute__ ((aligned(__alignof__(__gnu_cxx::__recursive_mutex))));
- fake_recursive_mutex fake_mutex;
-
- static void init()
- { static_mutex = new (&fake_mutex) __gnu_cxx::__recursive_mutex(); }
-
- __gnu_cxx::__recursive_mutex&
- get_static_mutex()
- {
- static __gthread_once_t once = __GTHREAD_ONCE_INIT;
- __gthread_once(&once, init);
- return *static_mutex;
- }
-
- // Simple wrapper for exception safety.
- struct mutex_wrapper
- {
- bool unlock;
- mutex_wrapper() : unlock(true)
- { get_static_mutex().lock(); }
-
- ~mutex_wrapper()
- {
- if (unlock)
- static_mutex->unlock();
- }
- };
-}
-# endif
-
-# if defined(__GTHREAD_HAS_COND) && !defined(_GLIBCXX_USE_FUTEX)
-namespace
-{
- // A single conditional variable controlling all static initializations.
- static __gnu_cxx::__cond* static_cond;
-
- // using a fake type to avoid initializing a static class.
- typedef char fake_cond_t[sizeof(__gnu_cxx::__cond)]
- __attribute__ ((aligned(__alignof__(__gnu_cxx::__cond))));
- fake_cond_t fake_cond;
-
- static void init_static_cond()
- { static_cond = new (&fake_cond) __gnu_cxx::__cond(); }
-
- __gnu_cxx::__cond&
- get_static_cond()
- {
- static __gthread_once_t once = __GTHREAD_ONCE_INIT;
- __gthread_once(&once, init_static_cond);
- return *static_cond;
- }
-}
-# endif
-
-# ifndef _GLIBCXX_GUARD_TEST_AND_ACQUIRE
-inline bool
-__test_and_acquire (__cxxabiv1::__guard *g)
-{
- bool b = _GLIBCXX_GUARD_TEST (g);
- _GLIBCXX_READ_MEM_BARRIER;
- return b;
-}
-# define _GLIBCXX_GUARD_TEST_AND_ACQUIRE(G) __test_and_acquire (G)
-# endif
-
-# ifndef _GLIBCXX_GUARD_SET_AND_RELEASE
-inline void
-__set_and_release (__cxxabiv1::__guard *g)
-{
- _GLIBCXX_WRITE_MEM_BARRIER;
- _GLIBCXX_GUARD_SET (g);
-}
-# define _GLIBCXX_GUARD_SET_AND_RELEASE(G) __set_and_release (G)
-# endif
-
-#else /* !__GTHREADS */
-
-# undef _GLIBCXX_GUARD_TEST_AND_ACQUIRE
-# undef _GLIBCXX_GUARD_SET_AND_RELEASE
-# define _GLIBCXX_GUARD_SET_AND_RELEASE(G) _GLIBCXX_GUARD_SET (G)
-
-#endif /* __GTHREADS */
-
-namespace __gnu_cxx
-{
- // 6.7[stmt.dcl]/4: If control re-enters the declaration (recursively)
- // while the object is being initialized, the behavior is undefined.
-
- // Since we already have a library function to handle locking, we might
- // as well check for this situation and throw an exception.
- // We use the second byte of the guard variable to remember that we're
- // in the middle of an initialization.
- class recursive_init_error: public std::exception
- {
- public:
- recursive_init_error() throw() { }
- virtual ~recursive_init_error() throw ();
- };
-
- recursive_init_error::~recursive_init_error() throw() { }
-}
-
-//
-// Here are C++ run-time routines for guarded initiailization of static
-// variables. There are 4 scenarios under which these routines are called:
-//
-// 1. Threads not supported (__GTHREADS not defined)
-// 2. Threads are supported but not enabled at run-time.
-// 3. Threads enabled at run-time but __gthreads_* are not fully POSIX.
-// 4. Threads enabled at run-time and __gthreads_* support all POSIX threads
-// primitives we need here.
-//
-// The old code supported scenarios 1-3 but was broken since it used a global
-// mutex for all threads and had the mutex locked during the whole duration of
-// initlization of a guarded static variable. The following created a dead-lock
-// with the old code.
-//
-// Thread 1 acquires the global mutex.
-// Thread 1 starts initializing static variable.
-// Thread 1 creates thread 2 during initialization.
-// Thread 2 attempts to acuqire mutex to initialize another variable.
-// Thread 2 blocks since thread 1 is locking the mutex.
-// Thread 1 waits for result from thread 2 and also blocks. A deadlock.
-//
-// The new code here can handle this situation and thus is more robust. Howere,
-// we need to use the POSIX thread conditional variable, which is not supported
-// in all platforms, notably older versions of Microsoft Windows. The gthr*.h
-// headers define a symbol __GTHREAD_HAS_COND for platforms that support POSIX
-// like conditional variables. For platforms that do not support conditional
-// variables, we need to fall back to the old code.
-
-// If _GLIBCXX_USE_FUTEX, no global mutex or conditional variable is used,
-// only atomic operations are used together with futex syscall.
-// Valid values of the first integer in guard are:
-// 0 No thread encountered the guarded init
-// yet or it has been aborted.
-// _GLIBCXX_GUARD_BIT The guarded static var has been successfully
-// initialized.
-// _GLIBCXX_GUARD_PENDING_BIT The guarded static var is being initialized
-// and no other thread is waiting for its
-// initialization.
-// (_GLIBCXX_GUARD_PENDING_BIT The guarded static var is being initialized
-// | _GLIBCXX_GUARD_WAITING_BIT) and some other threads are waiting until
-// it is initialized.
-
-namespace __cxxabiv1
-{
-#ifdef _GLIBCXX_USE_FUTEX
- namespace
- {
- static inline int __guard_test_bit (const int __byte, const int __val)
- {
- union { int __i; char __c[sizeof (int)]; } __u = { 0 };
- __u.__c[__byte] = __val;
- return __u.__i;
- }
- }
-#endif
-
- static inline int
- init_in_progress_flag(__guard* g)
- { return ((char *)g)[1]; }
-
- static inline void
- set_init_in_progress_flag(__guard* g, int v)
- { ((char *)g)[1] = v; }
-
- static inline void
- throw_recursive_init_exception()
- {
-#ifdef __EXCEPTIONS
- throw __gnu_cxx::recursive_init_error();
-#else
- // Use __builtin_trap so we don't require abort().
- __builtin_trap();
-#endif
- }
-
- // acuire() is a helper function used to acquire guard if thread support is
- // not compiled in or is compiled in but not enabled at run-time.
- static int
- acquire(__guard *g)
- {
- // Quit if the object is already initialized.
- if (_GLIBCXX_GUARD_TEST(g))
- return 0;
-
- if (init_in_progress_flag(g))
- throw_recursive_init_exception();
-
- set_init_in_progress_flag(g, 1);
- return 1;
- }
-
- extern "C"
- int __cxa_guard_acquire (__guard *g)
- {
-#ifdef __GTHREADS
- // If the target can reorder loads, we need to insert a read memory
- // barrier so that accesses to the guarded variable happen after the
- // guard test.
- if (_GLIBCXX_GUARD_TEST_AND_ACQUIRE (g))
- return 0;
-
-# ifdef _GLIBCXX_USE_FUTEX
- // If __sync_* and futex syscall are supported, don't use any global
- // mutex.
- if (__gthread_active_p ())
- {
- int *gi = (int *) (void *) g;
- const int guard_bit = _GLIBCXX_GUARD_BIT;
- const int pending_bit = _GLIBCXX_GUARD_PENDING_BIT;
- const int waiting_bit = _GLIBCXX_GUARD_WAITING_BIT;
-
- while (1)
- {
- int old = __sync_val_compare_and_swap (gi, 0, pending_bit);
- if (old == 0)
- return 1; // This thread should do the initialization.
-
- if (old == guard_bit)
- return 0; // Already initialized.
-
- if (old == pending_bit)
- {
- int newv = old | waiting_bit;
- if (__sync_val_compare_and_swap (gi, old, newv) != old)
- continue;
-
- old = newv;
- }
-
- syscall (SYS_futex, gi, _GLIBCXX_FUTEX_WAIT, old, 0);
- }
- }
-# else
- if (__gthread_active_p ())
- {
- mutex_wrapper mw;
-
- while (1) // When this loop is executing, mutex is locked.
- {
-# ifdef __GTHREAD_HAS_COND
- // The static is already initialized.
- if (_GLIBCXX_GUARD_TEST(g))
- return 0; // The mutex will be unlocked via wrapper
-
- if (init_in_progress_flag(g))
- {
- // The guarded static is currently being initialized by
- // another thread, so we release mutex and wait for the
- // conditional variable. We will lock the mutex again after
- // this.
- get_static_cond().wait_recursive(&get_static_mutex());
- }
- else
- {
- set_init_in_progress_flag(g, 1);
- return 1; // The mutex will be unlocked via wrapper.
- }
-# else
- // This provides compatibility with older systems not supporting
- // POSIX like conditional variables.
- if (acquire(g))
- {
- mw.unlock = false;
- return 1; // The mutex still locked.
- }
- return 0; // The mutex will be unlocked via wrapper.
-# endif
- }
- }
-# endif
-#endif
-
- return acquire (g);
- }
-
- extern "C"
- void __cxa_guard_abort (__guard *g)
- {
-#ifdef _GLIBCXX_USE_FUTEX
- // If __sync_* and futex syscall are supported, don't use any global
- // mutex.
- if (__gthread_active_p ())
- {
- int *gi = (int *) (void *) g;
- const int waiting_bit = _GLIBCXX_GUARD_WAITING_BIT;
- int old = __sync_lock_test_and_set (gi, 0);
-
- if ((old & waiting_bit) != 0)
- syscall (SYS_futex, gi, _GLIBCXX_FUTEX_WAKE, INT_MAX);
- return;
- }
-#elif defined(__GTHREAD_HAS_COND)
- if (__gthread_active_p())
- {
- mutex_wrapper mw;
-
- set_init_in_progress_flag(g, 0);
-
- // If we abort, we still need to wake up all other threads waiting for
- // the conditional variable.
- get_static_cond().broadcast();
- return;
- }
-#endif
-
- set_init_in_progress_flag(g, 0);
-#if defined(__GTHREADS) && !defined(__GTHREAD_HAS_COND)
- // This provides compatibility with older systems not supporting POSIX like
- // conditional variables.
- if (__gthread_active_p ())
- static_mutex->unlock();
-#endif
- }
-
- extern "C"
- void __cxa_guard_release (__guard *g)
- {
-#ifdef _GLIBCXX_USE_FUTEX
- // If __sync_* and futex syscall are supported, don't use any global
- // mutex.
- if (__gthread_active_p ())
- {
- int *gi = (int *) (void *) g;
- const int guard_bit = _GLIBCXX_GUARD_BIT;
- const int waiting_bit = _GLIBCXX_GUARD_WAITING_BIT;
- int old = __sync_lock_test_and_set (gi, guard_bit);
-
- if ((old & waiting_bit) != 0)
- syscall (SYS_futex, gi, _GLIBCXX_FUTEX_WAKE, INT_MAX);
- return;
- }
-#elif defined(__GTHREAD_HAS_COND)
- if (__gthread_active_p())
- {
- mutex_wrapper mw;
-
- set_init_in_progress_flag(g, 0);
- _GLIBCXX_GUARD_SET_AND_RELEASE(g);
-
- get_static_cond().broadcast();
- return;
- }
-#endif
-
- set_init_in_progress_flag(g, 0);
- _GLIBCXX_GUARD_SET_AND_RELEASE (g);
-
-#if defined(__GTHREADS) && !defined(__GTHREAD_HAS_COND)
- // This provides compatibility with older systems not supporting POSIX like
- // conditional variables.
- if (__gthread_active_p())
- static_mutex->unlock();
-#endif
- }
-}
diff --git a/gcc-4.4.3/libstdc++-v3/libsupc++/initializer_list b/gcc-4.4.3/libstdc++-v3/libsupc++/initializer_list
deleted file mode 100644
index 6b8a2021b..000000000
--- a/gcc-4.4.3/libstdc++-v3/libsupc++/initializer_list
+++ /dev/null
@@ -1,72 +0,0 @@
-// std::initializer_list support -*- C++ -*-
-
-// Copyright (C) 2008, 2009 Free Software Foundation, Inc.
-//
-// This file is part of GCC.
-//
-// GCC 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 3, or (at your option)
-// any later version.
-//
-// GCC 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.
-//
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-/** @file initializer_list
- * This is a Standard C++ Library header.
- */
-
-#ifndef __CXX_INITIALIZER_LIST
-#define __CXX_INITIALIZER_LIST
-
-#ifdef __GXX_EXPERIMENTAL_CXX0X__
-
-#pragma GCC visibility push(default)
-
-#include <cstddef>
-
-namespace std
-{
- /// initializer_list
- template<class _E>
- class initializer_list
- {
- const _E* __array;
- size_t __len;
-
- // The compiler can call a private constructor.
- initializer_list(const _E* __a, size_t __l)
- : __array(__a), __len(__l) { }
-
- public:
- initializer_list()
- : __array(NULL), __len(0) { }
-
- // Number of elements.
- size_t size() const
- { return __len; }
-
- // First element.
- const _E* begin() const
- { return __array; }
-
- // One past the last element.
- const _E* end() const
- { return begin() + size(); }
- };
-}
-
-#pragma GCC visibility pop
-#endif // C++0x
-#endif // __CXX_INITIALIZER_LIST
diff --git a/gcc-4.4.3/libstdc++-v3/libsupc++/new b/gcc-4.4.3/libstdc++-v3/libsupc++/new
deleted file mode 100644
index d41150202..000000000
--- a/gcc-4.4.3/libstdc++-v3/libsupc++/new
+++ /dev/null
@@ -1,112 +0,0 @@
-// The -*- C++ -*- dynamic memory management header.
-
-// Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-// 2003, 2004, 2005, 2006, 2007, 2009
-// Free Software Foundation
-
-// This file is part of GCC.
-//
-// GCC 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 3, or (at your option)
-// any later version.
-//
-// GCC 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.
-//
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-/** @file new
- * This is a Standard C++ Library header.
- *
- * The header @c new defines several functions to manage dynamic memory and
- * handling memory allocation errors; see
- * http://gcc.gnu.org/onlinedocs/libstdc++/18_support/howto.html#4 for more.
- */
-
-#ifndef _NEW
-#define _NEW
-
-#include <cstddef>
-#include <exception>
-
-#pragma GCC visibility push(default)
-
-extern "C++" {
-
-namespace std
-{
- /**
- * @brief Exception possibly thrown by @c new.
- * @ingroup exceptions
- *
- * @c bad_alloc (or classes derived from it) is used to report allocation
- * errors from the throwing forms of @c new. */
- class bad_alloc : public exception
- {
- public:
- bad_alloc() throw() { }
-
- // This declaration is not useless:
- // http://gcc.gnu.org/onlinedocs/gcc-3.0.2/gcc_6.html#SEC118
- virtual ~bad_alloc() throw();
-
- // See comment in eh_exception.cc.
- virtual const char* what() const throw();
- };
-
- struct nothrow_t { };
-
- extern const nothrow_t nothrow;
-
- /** If you write your own error handler to be called by @c new, it must
- * be of this type. */
- typedef void (*new_handler)();
-
- /// Takes a replacement handler as the argument, returns the
- /// previous handler.
- new_handler set_new_handler(new_handler) throw();
-} // namespace std
-
-//@{
-/** These are replaceable signatures:
- * - normal single new and delete (no arguments, throw @c bad_alloc on error)
- * - normal array new and delete (same)
- * - @c nothrow single new and delete (take a @c nothrow argument, return
- * @c NULL on error)
- * - @c nothrow array new and delete (same)
- *
- * Placement new and delete signatures (take a memory address argument,
- * does nothing) may not be replaced by a user's program.
-*/
-void* operator new(std::size_t) throw (std::bad_alloc);
-void* operator new[](std::size_t) throw (std::bad_alloc);
-void operator delete(void*) throw();
-void operator delete[](void*) throw();
-void* operator new(std::size_t, const std::nothrow_t&) throw();
-void* operator new[](std::size_t, const std::nothrow_t&) throw();
-void operator delete(void*, const std::nothrow_t&) throw();
-void operator delete[](void*, const std::nothrow_t&) throw();
-
-// Default placement versions of operator new.
-inline void* operator new(std::size_t, void* __p) throw() { return __p; }
-inline void* operator new[](std::size_t, void* __p) throw() { return __p; }
-
-// Default placement versions of operator delete.
-inline void operator delete (void*, void*) throw() { }
-inline void operator delete[](void*, void*) throw() { }
-//@}
-} // extern "C++"
-
-#pragma GCC visibility pop
-
-#endif
diff --git a/gcc-4.4.3/libstdc++-v3/libsupc++/new_handler.cc b/gcc-4.4.3/libstdc++-v3/libsupc++/new_handler.cc
deleted file mode 100644
index 6d17a6f6c..000000000
--- a/gcc-4.4.3/libstdc++-v3/libsupc++/new_handler.cc
+++ /dev/null
@@ -1,49 +0,0 @@
-// Implementation file for the -*- C++ -*- dynamic memory management header.
-
-// Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-// 2005, 2006, 2007, 2009
-// Free Software Foundation
-//
-// This file is part of GCC.
-//
-// GCC 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 3, or (at your option)
-// any later version.
-//
-// GCC 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.
-//
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-#include "new"
-
-const std::nothrow_t std::nothrow = { };
-
-using std::new_handler;
-new_handler __new_handler;
-
-new_handler
-std::set_new_handler (new_handler handler) throw()
-{
- new_handler prev_handler = __new_handler;
- __new_handler = handler;
- return prev_handler;
-}
-
-std::bad_alloc::~bad_alloc() throw() { }
-
-const char*
-std::bad_alloc::what() const throw()
-{
- return "std::bad_alloc";
-}
diff --git a/gcc-4.4.3/libstdc++-v3/libsupc++/new_op.cc b/gcc-4.4.3/libstdc++-v3/libsupc++/new_op.cc
deleted file mode 100644
index 4857c22f2..000000000
--- a/gcc-4.4.3/libstdc++-v3/libsupc++/new_op.cc
+++ /dev/null
@@ -1,67 +0,0 @@
-// Support routines for the -*- C++ -*- dynamic memory management.
-
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2004, 2009
-// Free Software Foundation
-//
-// This file is part of GCC.
-//
-// GCC 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 3, or (at your option)
-// any later version.
-//
-// GCC 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.
-//
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-#include <bits/c++config.h>
-#include <cstdlib>
-#include <exception_defines.h>
-#include "new"
-
-using std::new_handler;
-using std::bad_alloc;
-#if _GLIBCXX_HOSTED
-using std::malloc;
-#else
-// A freestanding C runtime may not provide "malloc" -- but there is no
-// other reasonable way to implement "operator new".
-extern "C" void *malloc (std::size_t);
-#endif
-
-extern new_handler __new_handler;
-
-_GLIBCXX_WEAK_DEFINITION void *
-operator new (std::size_t sz) throw (std::bad_alloc)
-{
- void *p;
-
- /* malloc (0) is unpredictable; avoid it. */
- if (sz == 0)
- sz = 1;
- p = (void *) malloc (sz);
- while (p == 0)
- {
- new_handler handler = __new_handler;
- if (! handler)
-#ifdef __EXCEPTIONS
- throw bad_alloc();
-#else
- std::abort();
-#endif
- handler ();
- p = (void *) malloc (sz);
- }
-
- return p;
-}
diff --git a/gcc-4.4.3/libstdc++-v3/libsupc++/new_opnt.cc b/gcc-4.4.3/libstdc++-v3/libsupc++/new_opnt.cc
deleted file mode 100644
index 766985ee8..000000000
--- a/gcc-4.4.3/libstdc++-v3/libsupc++/new_opnt.cc
+++ /dev/null
@@ -1,63 +0,0 @@
-// Support routines for the -*- C++ -*- dynamic memory management.
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2004, 2009
-// Free Software Foundation
-//
-// This file is part of GCC.
-//
-// GCC 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 3, or (at your option)
-// any later version.
-//
-// GCC 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.
-//
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-#include <bits/c++config.h>
-#include <exception_defines.h>
-#include "new"
-
-using std::new_handler;
-using std::bad_alloc;
-
-extern "C" void *malloc (std::size_t);
-extern new_handler __new_handler;
-
-_GLIBCXX_WEAK_DEFINITION void *
-operator new (std::size_t sz, const std::nothrow_t&) throw()
-{
- void *p;
-
- /* malloc (0) is unpredictable; avoid it. */
- if (sz == 0)
- sz = 1;
- p = (void *) malloc (sz);
- while (p == 0)
- {
- new_handler handler = __new_handler;
- if (! handler)
- return 0;
- try
- {
- handler ();
- }
- catch (bad_alloc &)
- {
- return 0;
- }
-
- p = (void *) malloc (sz);
- }
-
- return p;
-}
diff --git a/gcc-4.4.3/libstdc++-v3/libsupc++/new_opv.cc b/gcc-4.4.3/libstdc++-v3/libsupc++/new_opv.cc
deleted file mode 100644
index b200e23c3..000000000
--- a/gcc-4.4.3/libstdc++-v3/libsupc++/new_opv.cc
+++ /dev/null
@@ -1,33 +0,0 @@
-// Boilerplate support routines for -*- C++ -*- dynamic memory management.
-
-// Copyright (C) 1997, 1998, 1999, 2000, 2004, 2009 Free Software Foundation
-//
-// This file is part of GCC.
-//
-// GCC 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 3, or (at your option)
-// any later version.
-//
-// GCC 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.
-//
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-#include <bits/c++config.h>
-#include "new"
-
-_GLIBCXX_WEAK_DEFINITION void*
-operator new[] (std::size_t sz) throw (std::bad_alloc)
-{
- return ::operator new(sz);
-}
diff --git a/gcc-4.4.3/libstdc++-v3/libsupc++/new_opvnt.cc b/gcc-4.4.3/libstdc++-v3/libsupc++/new_opvnt.cc
deleted file mode 100644
index da4ae80b6..000000000
--- a/gcc-4.4.3/libstdc++-v3/libsupc++/new_opvnt.cc
+++ /dev/null
@@ -1,33 +0,0 @@
-// Boilerplate support routines for -*- C++ -*- dynamic memory management.
-
-// Copyright (C) 1997, 1998, 1999, 2000, 2004, 2009 Free Software Foundation
-//
-// This file is part of GCC.
-//
-// GCC 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 3, or (at your option)
-// any later version.
-//
-// GCC 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.
-//
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-#include <bits/c++config.h>
-#include "new"
-
-_GLIBCXX_WEAK_DEFINITION void*
-operator new[] (std::size_t sz, const std::nothrow_t& nothrow) throw()
-{
- return ::operator new(sz, nothrow);
-}
diff --git a/gcc-4.4.3/libstdc++-v3/libsupc++/pbase_type_info.cc b/gcc-4.4.3/libstdc++-v3/libsupc++/pbase_type_info.cc
deleted file mode 100644
index e075b9e6a..000000000
--- a/gcc-4.4.3/libstdc++-v3/libsupc++/pbase_type_info.cc
+++ /dev/null
@@ -1,62 +0,0 @@
-// Copyright (C) 1994, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2007, 2009
-// Free Software Foundation
-//
-// This file is part of GCC.
-//
-// GCC 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 3, or (at your option)
-// any later version.
-
-// GCC 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.
-
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-#include "tinfo.h"
-
-namespace __cxxabiv1 {
-
-__pbase_type_info::
-~__pbase_type_info ()
-{}
-
-bool __pbase_type_info::
-__do_catch (const type_info *thr_type,
- void **thr_obj,
- unsigned outer) const
-{
- if (*this == *thr_type)
- return true; // same type
- if (typeid (*this) != typeid (*thr_type))
- return false; // not both same kind of pointers
-
- if (!(outer & 1))
- // We're not the same and our outer pointers are not all const qualified
- // Therefore there must at least be a qualification conversion involved
- // But for that to be valid, our outer pointers must be const qualified.
- return false;
-
- const __pbase_type_info *thrown_type =
- static_cast <const __pbase_type_info *> (thr_type);
-
- if (thrown_type->__flags & ~__flags)
- // We're less qualified.
- return false;
-
- if (!(__flags & __const_mask))
- outer &= ~1;
-
- return __pointer_catch (thrown_type, thr_obj, outer);
-}
-
-}
diff --git a/gcc-4.4.3/libstdc++-v3/libsupc++/pmem_type_info.cc b/gcc-4.4.3/libstdc++-v3/libsupc++/pmem_type_info.cc
deleted file mode 100644
index b0409172d..000000000
--- a/gcc-4.4.3/libstdc++-v3/libsupc++/pmem_type_info.cc
+++ /dev/null
@@ -1,49 +0,0 @@
-// Copyright (C) 1994, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2007, 2009
-// Free Software Foundation
-//
-// This file is part of GCC.
-//
-// GCC 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 3, or (at your option)
-// any later version.
-
-// GCC 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.
-
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-#include "tinfo.h"
-
-namespace __cxxabiv1 {
-
-__pointer_to_member_type_info::
-~__pointer_to_member_type_info ()
-{}
-
-bool __pointer_to_member_type_info::
-__pointer_catch (const __pbase_type_info *thr_type,
- void **thr_obj,
- unsigned outer) const
-{
- // This static cast is always valid, as our caller will have determined that
- // thr_type is really a __pointer_to_member_type_info.
- const __pointer_to_member_type_info *thrown_type =
- static_cast <const __pointer_to_member_type_info *> (thr_type);
-
- if (*__context != *thrown_type->__context)
- return false; // not pointers to member of same class
-
- return __pbase_type_info::__pointer_catch (thrown_type, thr_obj, outer);
-}
-
-}
diff --git a/gcc-4.4.3/libstdc++-v3/libsupc++/pointer_type_info.cc b/gcc-4.4.3/libstdc++-v3/libsupc++/pointer_type_info.cc
deleted file mode 100644
index ae15af07c..000000000
--- a/gcc-4.4.3/libstdc++-v3/libsupc++/pointer_type_info.cc
+++ /dev/null
@@ -1,53 +0,0 @@
-// Copyright (C) 1994, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2007, 2009
-// Free Software Foundation
-//
-// This file is part of GCC.
-//
-// GCC 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 3, or (at your option)
-// any later version.
-
-// GCC 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.
-
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-#include "tinfo.h"
-
-namespace __cxxabiv1 {
-
-__pointer_type_info::
-~__pointer_type_info ()
-{}
-
-bool __pointer_type_info::
-__is_pointer_p () const
-{
- return true;
-}
-
-bool __pointer_type_info::
-__pointer_catch (const __pbase_type_info *thrown_type,
- void **thr_obj,
- unsigned outer) const
-{
- if (outer < 2 && *__pointee == typeid (void))
- {
- // conversion to void
- return !thrown_type->__pointee->__is_function_p ();
- }
-
- return __pbase_type_info::__pointer_catch (thrown_type, thr_obj, outer);
-}
-
-}
diff --git a/gcc-4.4.3/libstdc++-v3/libsupc++/pure.cc b/gcc-4.4.3/libstdc++-v3/libsupc++/pure.cc
deleted file mode 100644
index acf72327a..000000000
--- a/gcc-4.4.3/libstdc++-v3/libsupc++/pure.cc
+++ /dev/null
@@ -1,51 +0,0 @@
-// -*- C++ -*-
-// Copyright (C) 2000, 2001, 2009 Free Software Foundation
-//
-// This file is part of GCC.
-//
-// GCC 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 3, or (at your option)
-// any later version.
-//
-// GCC 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.
-//
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-#include <bits/c++config.h>
-#include <cxxabi.h>
-#include "unwind-cxx.h"
-
-#if _GLIBCXX_HOSTED
-#ifdef _GLIBCXX_HAVE_UNISTD_H
-# include <unistd.h>
-# define writestr(str) write(2, str, sizeof(str) - 1)
-# ifdef __GNU_LIBRARY__
- /* Avoid forcing the library's meaning of `write' on the user program
- by using the "internal" name (for use within the library). */
-/*# define write(fd, buf, n) __write((fd), (buf), (n))*/
-# endif
-#else
-# include <cstdio>
-# define writestr(str) std::fputs(str, stderr)
-#endif
-#else
-# define writestr(str) /* Empty */
-#endif
-
-extern "C" void
-__cxxabiv1::__cxa_pure_virtual (void)
-{
- writestr ("pure virtual method called\n");
- std::terminate ();
-}
diff --git a/gcc-4.4.3/libstdc++-v3/libsupc++/si_class_type_info.cc b/gcc-4.4.3/libstdc++-v3/libsupc++/si_class_type_info.cc
deleted file mode 100644
index 829e71fad..000000000
--- a/gcc-4.4.3/libstdc++-v3/libsupc++/si_class_type_info.cc
+++ /dev/null
@@ -1,85 +0,0 @@
-// Copyright (C) 1994, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2007, 2009
-// Free Software Foundation
-//
-// This file is part of GCC.
-//
-// GCC 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 3, or (at your option)
-// any later version.
-
-// GCC 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.
-
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-#include "tinfo.h"
-
-namespace __cxxabiv1 {
-
-__si_class_type_info::
-~__si_class_type_info ()
-{}
-
-__class_type_info::__sub_kind __si_class_type_info::
-__do_find_public_src (ptrdiff_t src2dst,
- const void *obj_ptr,
- const __class_type_info *src_type,
- const void *src_ptr) const
-{
- if (src_ptr == obj_ptr && *this == *src_type)
- return __contained_public;
- return __base_type->__do_find_public_src (src2dst, obj_ptr, src_type, src_ptr);
-}
-
-bool __si_class_type_info::
-__do_dyncast (ptrdiff_t src2dst,
- __sub_kind access_path,
- const __class_type_info *dst_type,
- const void *obj_ptr,
- const __class_type_info *src_type,
- const void *src_ptr,
- __dyncast_result &__restrict result) const
-{
- if (*this == *dst_type)
- {
- result.dst_ptr = obj_ptr;
- result.whole2dst = access_path;
- if (src2dst >= 0)
- result.dst2src = adjust_pointer <void> (obj_ptr, src2dst) == src_ptr
- ? __contained_public : __not_contained;
- else if (src2dst == -2)
- result.dst2src = __not_contained;
- return false;
- }
- if (obj_ptr == src_ptr && *this == *src_type)
- {
- // The src object we started from. Indicate how we are accessible from
- // the most derived object.
- result.whole2src = access_path;
- return false;
- }
- return __base_type->__do_dyncast (src2dst, access_path, dst_type, obj_ptr,
- src_type, src_ptr, result);
-}
-
-bool __si_class_type_info::
-__do_upcast (const __class_type_info *dst, const void *obj_ptr,
- __upcast_result &__restrict result) const
-{
- if (__class_type_info::__do_upcast (dst, obj_ptr, result))
- return true;
-
- return __base_type->__do_upcast (dst, obj_ptr, result);
-}
-
-}
diff --git a/gcc-4.4.3/libstdc++-v3/libsupc++/tinfo.cc b/gcc-4.4.3/libstdc++-v3/libsupc++/tinfo.cc
deleted file mode 100644
index d939a3fda..000000000
--- a/gcc-4.4.3/libstdc++-v3/libsupc++/tinfo.cc
+++ /dev/null
@@ -1,81 +0,0 @@
-// Methods for type_info for -*- C++ -*- Run Time Type Identification.
-// Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-// 2003, 2004, 2005, 2006, 2007, 2009
-// Free Software Foundation
-//
-// This file is part of GCC.
-//
-// GCC 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 3, or (at your option)
-// any later version.
-
-// GCC 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.
-
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-#include <bits/c++config.h>
-#include <cstddef>
-#include "tinfo.h"
-
-std::type_info::
-~type_info ()
-{ }
-
-#if !__GXX_TYPEINFO_EQUALITY_INLINE
-
-// We can't rely on common symbols being shared between shared objects.
-bool std::type_info::
-operator== (const std::type_info& arg) const
-{
-#if __GXX_MERGED_TYPEINFO_NAMES
- return name () == arg.name ();
-#else
- return (&arg == this)
- || (name ()[0] != '*' && (__builtin_strcmp (name (), arg.name ()) == 0));
-#endif
-}
-
-#endif
-
-namespace std {
-
-// return true if this is a type_info for a pointer type
-bool type_info::
-__is_pointer_p () const
-{
- return false;
-}
-
-// return true if this is a type_info for a function type
-bool type_info::
-__is_function_p () const
-{
- return false;
-}
-
-// try and catch a thrown object.
-bool type_info::
-__do_catch (const type_info *thr_type, void **, unsigned) const
-{
- return *this == *thr_type;
-}
-
-// upcast from this type to the target. __class_type_info will override
-bool type_info::
-__do_upcast (const abi::__class_type_info *, void **) const
-{
- return false;
-}
-
-}
diff --git a/gcc-4.4.3/libstdc++-v3/libsupc++/tinfo.h b/gcc-4.4.3/libstdc++-v3/libsupc++/tinfo.h
deleted file mode 100644
index b3e22232f..000000000
--- a/gcc-4.4.3/libstdc++-v3/libsupc++/tinfo.h
+++ /dev/null
@@ -1,183 +0,0 @@
-// RTTI support internals for -*- C++ -*-
-// Copyright (C) 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2004, 2009
-// Free Software Foundation
-
-// This file is part of GCC.
-//
-// GCC 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 3, or (at your option)
-// any later version.
-
-// GCC 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.
-
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-#include "typeinfo"
-#include <cstddef>
-
-// Class declarations shared between the typeinfo implementation files.
-
-#include <cxxabi.h>
-
-namespace __cxxabiv1 {
-
-inline bool __pbase_type_info::
-__pointer_catch (const __pbase_type_info *thrown_type,
- void **thr_obj,
- unsigned outer) const
-{
- return __pointee->__do_catch (thrown_type->__pointee, thr_obj, outer + 2);
-}
-
-namespace {
-
-using namespace std;
-using namespace abi;
-
-// Initial part of a vtable, this structure is used with offsetof, so we don't
-// have to keep alignments consistent manually.
-struct vtable_prefix
-{
- // Offset to most derived object.
- ptrdiff_t whole_object;
-
- // Additional padding if necessary.
-#ifdef _GLIBCXX_VTABLE_PADDING
- ptrdiff_t padding1;
-#endif
-
- // Pointer to most derived type_info.
- const __class_type_info *whole_type;
-
- // Additional padding if necessary.
-#ifdef _GLIBCXX_VTABLE_PADDING
- ptrdiff_t padding2;
-#endif
-
- // What a class's vptr points to.
- const void *origin;
-};
-
-template <typename T>
-inline const T *
-adjust_pointer (const void *base, ptrdiff_t offset)
-{
- return reinterpret_cast <const T *>
- (reinterpret_cast <const char *> (base) + offset);
-}
-
-// ADDR is a pointer to an object. Convert it to a pointer to a base,
-// using OFFSET. IS_VIRTUAL is true, if we are getting a virtual base.
-inline void const *
-convert_to_base (void const *addr, bool is_virtual, ptrdiff_t offset)
-{
- if (is_virtual)
- {
- const void *vtable = *static_cast <const void *const *> (addr);
-
- offset = *adjust_pointer<ptrdiff_t> (vtable, offset);
- }
-
- return adjust_pointer<void> (addr, offset);
-}
-
-// some predicate functions for __class_type_info::__sub_kind
-inline bool contained_p (__class_type_info::__sub_kind access_path)
-{
- return access_path >= __class_type_info::__contained_mask;
-}
-inline bool public_p (__class_type_info::__sub_kind access_path)
-{
- return access_path & __class_type_info::__contained_public_mask;
-}
-inline bool virtual_p (__class_type_info::__sub_kind access_path)
-{
- return (access_path & __class_type_info::__contained_virtual_mask);
-}
-inline bool contained_public_p (__class_type_info::__sub_kind access_path)
-{
- return ((access_path & __class_type_info::__contained_public)
- == __class_type_info::__contained_public);
-}
-inline bool contained_nonpublic_p (__class_type_info::__sub_kind access_path)
-{
- return ((access_path & __class_type_info::__contained_public)
- == __class_type_info::__contained_mask);
-}
-inline bool contained_nonvirtual_p (__class_type_info::__sub_kind access_path)
-{
- return ((access_path & (__class_type_info::__contained_mask
- | __class_type_info::__contained_virtual_mask))
- == __class_type_info::__contained_mask);
-}
-
-static const __class_type_info *const nonvirtual_base_type =
- static_cast <const __class_type_info *> (0) + 1;
-
-} // namespace
-
-// __upcast_result is used to hold information during traversal of a class
-// hierarchy when catch matching.
-struct __class_type_info::__upcast_result
-{
- const void *dst_ptr; // pointer to caught object
- __sub_kind part2dst; // path from current base to target
- int src_details; // hints about the source type hierarchy
- const __class_type_info *base_type; // where we found the target,
- // if in vbase the __class_type_info of vbase
- // if a non-virtual base then 1
- // else NULL
- __upcast_result (int d)
- :dst_ptr (NULL), part2dst (__unknown), src_details (d), base_type (NULL)
- {}
-};
-
-// __dyncast_result is used to hold information during traversal of a class
-// hierarchy when dynamic casting.
-struct __class_type_info::__dyncast_result
-{
- const void *dst_ptr; // pointer to target object or NULL
- __sub_kind whole2dst; // path from most derived object to target
- __sub_kind whole2src; // path from most derived object to sub object
- __sub_kind dst2src; // path from target to sub object
- int whole_details; // details of the whole class hierarchy
-
- __dyncast_result (int details_ = __vmi_class_type_info::__flags_unknown_mask)
- :dst_ptr (NULL), whole2dst (__unknown),
- whole2src (__unknown), dst2src (__unknown),
- whole_details (details_)
- {}
-
-protected:
- __dyncast_result(const __dyncast_result&);
-
- __dyncast_result&
- operator=(const __dyncast_result&);
-};
-
-inline __class_type_info::__sub_kind __class_type_info::
-__find_public_src (ptrdiff_t src2dst,
- const void *obj_ptr,
- const __class_type_info *src_type,
- const void *src_ptr) const
-{
- if (src2dst >= 0)
- return adjust_pointer <void> (obj_ptr, src2dst) == src_ptr
- ? __contained_public : __not_contained;
- if (src2dst == -2)
- return __not_contained;
- return __do_find_public_src (src2dst, obj_ptr, src_type, src_ptr);
-}
-
-}
diff --git a/gcc-4.4.3/libstdc++-v3/libsupc++/tinfo2.cc b/gcc-4.4.3/libstdc++-v3/libsupc++/tinfo2.cc
deleted file mode 100644
index 0182c6cc0..000000000
--- a/gcc-4.4.3/libstdc++-v3/libsupc++/tinfo2.cc
+++ /dev/null
@@ -1,45 +0,0 @@
-// Methods for type_info for -*- C++ -*- Run Time Type Identification.
-
-// Copyright (C) 1994, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2009
-// Free Software Foundation
-//
-// This file is part of GCC.
-//
-// GCC 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 3, or (at your option)
-// any later version.
-
-// GCC 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.
-
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-#include <cstddef>
-#include "tinfo.h"
-
-using std::type_info;
-
-#if !__GXX_TYPEINFO_EQUALITY_INLINE
-
-bool
-type_info::before (const type_info &arg) const
-{
-#if __GXX_MERGED_TYPEINFO_NAMES
- return name () < arg.name ();
-#else
- return (name ()[0] == '*') ? name () < arg.name ()
- : __builtin_strcmp (name (), arg.name ()) < 0;
-#endif
-}
-
-#endif
diff --git a/gcc-4.4.3/libstdc++-v3/libsupc++/typeinfo b/gcc-4.4.3/libstdc++-v3/libsupc++/typeinfo
deleted file mode 100644
index f7f9d4e2c..000000000
--- a/gcc-4.4.3/libstdc++-v3/libsupc++/typeinfo
+++ /dev/null
@@ -1,206 +0,0 @@
-// RTTI support for -*- C++ -*-
-// Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-// 2003, 2004, 2005, 2006, 2007, 2009
-// Free Software Foundation
-//
-// This file is part of GCC.
-//
-// GCC 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 3, or (at your option)
-// any later version.
-//
-// GCC 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.
-//
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-/** @file typeinfo
- * This is a Standard C++ Library header.
- */
-
-#ifndef _TYPEINFO
-#define _TYPEINFO
-
-#include <exception>
-
-#pragma GCC visibility push(default)
-
-extern "C++" {
-
-namespace __cxxabiv1
-{
- class __class_type_info;
-} // namespace __cxxabiv1
-
-// Determine whether typeinfo names for the same type are merged (in which
-// case comparison can just compare pointers) or not (in which case strings
-// must be compared), and whether comparison is to be implemented inline or
-// not. We used to do inline pointer comparison by default if weak symbols
-// are available, but even with weak symbols sometimes names are not merged
-// when objects are loaded with RTLD_LOCAL, so now we always use strcmp by
-// default. For ABI compatibility, we do the strcmp inline if weak symbols
-// are available, and out-of-line if not. Out-of-line pointer comparison
-// is used where the object files are to be portable to multiple systems,
-// some of which may not be able to use pointer comparison, but the
-// particular system for which libstdc++ is being built can use pointer
-// comparison; in particular for most ARM EABI systems, where the ABI
-// specifies out-of-line comparison. The compiler's target configuration
-// can override the defaults by defining __GXX_TYPEINFO_EQUALITY_INLINE to
-// 1 or 0 to indicate whether or not comparison is inline, and
-// __GXX_MERGED_TYPEINFO_NAMES to 1 or 0 to indicate whether or not pointer
-// comparison can be used.
-
-#ifndef __GXX_MERGED_TYPEINFO_NAMES
-// By default, typeinfo names are not merged.
-#define __GXX_MERGED_TYPEINFO_NAMES 0
-#endif
-
-// By default follow the old inline rules to avoid ABI changes.
-#ifndef __GXX_TYPEINFO_EQUALITY_INLINE
- #if !__GXX_WEAK__
- #define __GXX_TYPEINFO_EQUALITY_INLINE 0
- #else
- #define __GXX_TYPEINFO_EQUALITY_INLINE 1
- #endif
-#endif
-
-namespace std
-{
- /**
- * @brief Part of RTTI.
- *
- * The @c type_info class describes type information generated by
- * an implementation.
- */
- class type_info
- {
- public:
- /** Destructor first. Being the first non-inline virtual function, this
- * controls in which translation unit the vtable is emitted. The
- * compiler makes use of that information to know where to emit
- * the runtime-mandated type_info structures in the new-abi. */
- virtual ~type_info();
-
- /** Returns an @e implementation-defined byte string; this is not
- * portable between compilers! */
- const char* name() const
- { return __name[0] == '*' ? __name + 1 : __name; }
-
-#if !__GXX_TYPEINFO_EQUALITY_INLINE
- // In old abi, or when weak symbols are not supported, there can
- // be multiple instances of a type_info object for one
- // type. Uniqueness must use the _name value, not object address.
- bool before(const type_info& __arg) const;
- bool operator==(const type_info& __arg) const;
-#else
- #if !__GXX_MERGED_TYPEINFO_NAMES
- /** Returns true if @c *this precedes @c __arg in the implementation's
- * collation order. */
- // Even with the new abi, on systems that support dlopen
- // we can run into cases where type_info names aren't merged,
- // so we still need to do string comparison.
- bool before(const type_info& __arg) const
- { return (__name[0] == '*' && __arg.__name[0] == '*')
- ? __name < __arg.__name
- : __builtin_strcmp (__name, __arg.__name) < 0; }
-
- bool operator==(const type_info& __arg) const
- {
- return ((__name == __arg.__name)
- || (__name[0] != '*' &&
- __builtin_strcmp (__name, __arg.__name) == 0));
- }
- #else
- // On some targets we can rely on type_info's NTBS being unique,
- // and therefore address comparisons are sufficient.
- bool before(const type_info& __arg) const
- { return __name < __arg.__name; }
-
- bool operator==(const type_info& __arg) const
- { return __name == __arg.__name; }
- #endif
-#endif
- bool operator!=(const type_info& __arg) const
- { return !operator==(__arg); }
-
- // Return true if this is a pointer type of some kind
- virtual bool __is_pointer_p() const;
-
- // Return true if this is a function type
- virtual bool __is_function_p() const;
-
- // Try and catch a thrown type. Store an adjusted pointer to the
- // caught type in THR_OBJ. If THR_TYPE is not a pointer type, then
- // THR_OBJ points to the thrown object. If THR_TYPE is a pointer
- // type, then THR_OBJ is the pointer itself. OUTER indicates the
- // number of outer pointers, and whether they were const
- // qualified.
- virtual bool __do_catch(const type_info *__thr_type, void **__thr_obj,
- unsigned __outer) const;
-
- // Internally used during catch matching
- virtual bool __do_upcast(const __cxxabiv1::__class_type_info *__target,
- void **__obj_ptr) const;
-
- protected:
- const char *__name;
-
- explicit type_info(const char *__n): __name(__n) { }
-
- private:
- /// Assigning type_info is not supported.
- type_info& operator=(const type_info&);
- type_info(const type_info&);
- };
-
- /**
- * @brief Thrown during incorrect typecasting.
- * @ingroup exceptions
- *
- * If you attempt an invalid @c dynamic_cast expression, an instance of
- * this class (or something derived from this class) is thrown. */
- class bad_cast : public exception
- {
- public:
- bad_cast() throw() { }
-
- // This declaration is not useless:
- // http://gcc.gnu.org/onlinedocs/gcc-3.0.2/gcc_6.html#SEC118
- virtual ~bad_cast() throw();
-
- // See comment in eh_exception.cc.
- virtual const char* what() const throw();
- };
-
- /**
- * @brief Thrown when a NULL pointer in a @c typeid expression is used.
- * @ingroup exceptions
- */
- class bad_typeid : public exception
- {
- public:
- bad_typeid () throw() { }
-
- // This declaration is not useless:
- // http://gcc.gnu.org/onlinedocs/gcc-3.0.2/gcc_6.html#SEC118
- virtual ~bad_typeid() throw();
-
- // See comment in eh_exception.cc.
- virtual const char* what() const throw();
- };
-} // namespace std
-
-#pragma GCC visibility pop
-
-} // extern "C++"
-#endif
diff --git a/gcc-4.4.3/libstdc++-v3/libsupc++/unwind-cxx.h b/gcc-4.4.3/libstdc++-v3/libsupc++/unwind-cxx.h
deleted file mode 100644
index 1420db368..000000000
--- a/gcc-4.4.3/libstdc++-v3/libsupc++/unwind-cxx.h
+++ /dev/null
@@ -1,412 +0,0 @@
-// -*- C++ -*- Exception handling and frame unwind runtime interface routines.
-// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
-// Free Software Foundation, Inc.
-//
-// This file is part of GCC.
-//
-// GCC 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 3, or (at your option)
-// any later version.
-//
-// GCC 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.
-//
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-// This is derived from the C++ ABI for IA-64. Where we diverge
-// for cross-architecture compatibility are noted with "@@@".
-
-#ifndef _UNWIND_CXX_H
-#define _UNWIND_CXX_H 1
-
-// Level 2: C++ ABI
-
-#include <typeinfo>
-#include <exception>
-#include <cstddef>
-#include "unwind.h"
-#include <bits/atomic_word.h>
-
-#pragma GCC visibility push(default)
-
-namespace __cxxabiv1
-{
-
-// A primary C++ exception object consists of a header, which is a wrapper
-// around an unwind object header with additional C++ specific information,
-// followed by the exception object itself.
-
-struct __cxa_exception
-{
- // Manage the exception object itself.
- std::type_info *exceptionType;
- void (*exceptionDestructor)(void *);
-
- // The C++ standard has entertaining rules wrt calling set_terminate
- // and set_unexpected in the middle of the exception cleanup process.
- std::unexpected_handler unexpectedHandler;
- std::terminate_handler terminateHandler;
-
- // The caught exception stack threads through here.
- __cxa_exception *nextException;
-
- // How many nested handlers have caught this exception. A negated
- // value is a signal that this object has been rethrown.
- int handlerCount;
-
-#ifdef __ARM_EABI_UNWINDER__
- // Stack of exceptions in cleanups.
- __cxa_exception* nextPropagatingException;
-
- // The nuber of active cleanup handlers for this exception.
- int propagationCount;
-#else
- // Cache parsed handler data from the personality routine Phase 1
- // for Phase 2 and __cxa_call_unexpected.
- int handlerSwitchValue;
- const unsigned char *actionRecord;
- const unsigned char *languageSpecificData;
- _Unwind_Ptr catchTemp;
- void *adjustedPtr;
-#endif
-
- // The generic exception header. Must be last.
- _Unwind_Exception unwindHeader;
-};
-
-struct __cxa_refcounted_exception
-{
- // Manage this header.
- _Atomic_word referenceCount;
- // __cxa_exception must be last, and no padding can be after it.
- __cxa_exception exc;
-};
-
-// A dependent C++ exception object consists of a wrapper around an unwind
-// object header with additional C++ specific information, containing a pointer
-// to a primary exception object.
-
-struct __cxa_dependent_exception
-{
- // The primary exception this thing depends on.
- void *primaryException;
-
- // The C++ standard has entertaining rules wrt calling set_terminate
- // and set_unexpected in the middle of the exception cleanup process.
- std::unexpected_handler unexpectedHandler;
- std::terminate_handler terminateHandler;
-
- // The caught exception stack threads through here.
- __cxa_exception *nextException;
-
- // How many nested handlers have caught this exception. A negated
- // value is a signal that this object has been rethrown.
- int handlerCount;
-
-#ifdef __ARM_EABI_UNWINDER__
- // Stack of exceptions in cleanups.
- __cxa_exception* nextPropagatingException;
-
- // The nuber of active cleanup handlers for this exception.
- int propagationCount;
-#else
- // Cache parsed handler data from the personality routine Phase 1
- // for Phase 2 and __cxa_call_unexpected.
- int handlerSwitchValue;
- const unsigned char *actionRecord;
- const unsigned char *languageSpecificData;
- _Unwind_Ptr catchTemp;
- void *adjustedPtr;
-#endif
-
- // The generic exception header. Must be last.
- _Unwind_Exception unwindHeader;
-};
-
-// Each thread in a C++ program has access to a __cxa_eh_globals object.
-struct __cxa_eh_globals
-{
- __cxa_exception *caughtExceptions;
- unsigned int uncaughtExceptions;
-#ifdef __ARM_EABI_UNWINDER__
- __cxa_exception* propagatingExceptions;
-#endif
-};
-
-
-// The __cxa_eh_globals for the current thread can be obtained by using
-// either of the following functions. The "fast" version assumes at least
-// one prior call of __cxa_get_globals has been made from the current
-// thread, so no initialization is necessary.
-extern "C" __cxa_eh_globals *__cxa_get_globals () throw();
-extern "C" __cxa_eh_globals *__cxa_get_globals_fast () throw();
-
-// Allocate memory for the primary exception plus the thrown object.
-extern "C" void *__cxa_allocate_exception(std::size_t thrown_size) throw();
-
-// Free the space allocated for the primary exception.
-extern "C" void __cxa_free_exception(void *thrown_exception) throw();
-
-// Allocate memory for a dependent exception.
-extern "C" __cxa_dependent_exception*
-__cxa_allocate_dependent_exception() throw();
-
-// Free the space allocated for the dependent exception.
-extern "C" void
-__cxa_free_dependent_exception(__cxa_dependent_exception *ex) throw();
-
-// Throw the exception.
-extern "C" void __cxa_throw (void *thrown_exception,
- std::type_info *tinfo,
- void (*dest) (void *))
- __attribute__((noreturn));
-
-// Used to implement exception handlers.
-extern "C" void *__cxa_get_exception_ptr (void *) throw();
-extern "C" void *__cxa_begin_catch (void *) throw();
-extern "C" void __cxa_end_catch ();
-extern "C" void __cxa_rethrow () __attribute__((noreturn));
-
-// These facilitate code generation for recurring situations.
-extern "C" void __cxa_bad_cast ();
-extern "C" void __cxa_bad_typeid ();
-
-// @@@ These are not directly specified by the IA-64 C++ ABI.
-
-// Handles re-checking the exception specification if unexpectedHandler
-// throws, and if bad_exception needs to be thrown. Called from the
-// compiler.
-extern "C" void __cxa_call_unexpected (void *) __attribute__((noreturn));
-extern "C" void __cxa_call_terminate (void*) __attribute__((noreturn));
-
-#ifdef __ARM_EABI_UNWINDER__
-// Arm EABI specified routines.
-typedef enum {
- ctm_failed = 0,
- ctm_succeeded = 1,
- ctm_succeeded_with_ptr_to_base = 2
-} __cxa_type_match_result;
-extern "C" bool __cxa_type_match(_Unwind_Exception*, const std::type_info*,
- bool, void**);
-extern "C" void __cxa_begin_cleanup (_Unwind_Exception*);
-extern "C" void __cxa_end_cleanup (void);
-#endif
-
-// Invokes given handler, dying appropriately if the user handler was
-// so inconsiderate as to return.
-extern void __terminate(std::terminate_handler) __attribute__((noreturn));
-extern void __unexpected(std::unexpected_handler) __attribute__((noreturn));
-
-// The current installed user handlers.
-extern std::terminate_handler __terminate_handler;
-extern std::unexpected_handler __unexpected_handler;
-
-// These are explicitly GNU C++ specific.
-
-// Acquire the C++ exception header from the C++ object.
-static inline __cxa_exception *
-__get_exception_header_from_obj (void *ptr)
-{
- return reinterpret_cast<__cxa_exception *>(ptr) - 1;
-}
-
-// Acquire the C++ exception header from the generic exception header.
-static inline __cxa_exception *
-__get_exception_header_from_ue (_Unwind_Exception *exc)
-{
- return reinterpret_cast<__cxa_exception *>(exc + 1) - 1;
-}
-
-// Acquire the C++ refcounted exception header from the C++ object.
-static inline __cxa_refcounted_exception *
-__get_refcounted_exception_header_from_obj (void *ptr)
-{
- return reinterpret_cast<__cxa_refcounted_exception *>(ptr) - 1;
-}
-
-// Acquire the C++ refcounted exception header from the generic exception
-// header.
-static inline __cxa_refcounted_exception *
-__get_refcounted_exception_header_from_ue (_Unwind_Exception *exc)
-{
- return reinterpret_cast<__cxa_refcounted_exception *>(exc + 1) - 1;
-}
-
-static inline __cxa_dependent_exception *
-__get_dependent_exception_from_ue (_Unwind_Exception *exc)
-{
- return reinterpret_cast<__cxa_dependent_exception *>(exc + 1) - 1;
-}
-
-#ifdef __ARM_EABI_UNWINDER__
-static inline bool
-__is_gxx_exception_class(_Unwind_Exception_Class c)
-{
- // TODO: Take advantage of the fact that c will always be word aligned.
- return c[0] == 'G'
- && c[1] == 'N'
- && c[2] == 'U'
- && c[3] == 'C'
- && c[4] == 'C'
- && c[5] == '+'
- && c[6] == '+'
- && (c[7] == '\0' || c[7] == '\x01');
-}
-
-// Only checks for primary or dependent, but not that it is a C++ exception at
-// all.
-static inline bool
-__is_dependent_exception(_Unwind_Exception_Class c)
-{
- return c[7] == '\x01';
-}
-
-static inline void
-__GXX_INIT_PRIMARY_EXCEPTION_CLASS(_Unwind_Exception_Class c)
-{
- c[0] = 'G';
- c[1] = 'N';
- c[2] = 'U';
- c[3] = 'C';
- c[4] = 'C';
- c[5] = '+';
- c[6] = '+';
- c[7] = '\0';
-}
-
-static inline void
-__GXX_INIT_DEPENDENT_EXCEPTION_CLASS(_Unwind_Exception_Class c)
-{
- c[0] = 'G';
- c[1] = 'N';
- c[2] = 'U';
- c[3] = 'C';
- c[4] = 'C';
- c[5] = '+';
- c[6] = '+';
- c[7] = '\x01';
-}
-
-static inline bool
-__is_gxx_forced_unwind_class(_Unwind_Exception_Class c)
-{
- return c[0] == 'G'
- && c[1] == 'N'
- && c[2] == 'U'
- && c[3] == 'C'
- && c[4] == 'F'
- && c[5] == 'O'
- && c[6] == 'R'
- && c[7] == '\0';
-}
-
-static inline void
-__GXX_INIT_FORCED_UNWIND_CLASS(_Unwind_Exception_Class c)
-{
- c[0] = 'G';
- c[1] = 'N';
- c[2] = 'U';
- c[3] = 'C';
- c[4] = 'F';
- c[5] = 'O';
- c[6] = 'R';
- c[7] = '\0';
-}
-
-static inline void*
-__gxx_caught_object(_Unwind_Exception* eo)
-{
- return (void*)eo->barrier_cache.bitpattern[0];
-}
-#else // !__ARM_EABI_UNWINDER__
-// This is the primary exception class we report -- "GNUCC++\0".
-const _Unwind_Exception_Class __gxx_primary_exception_class
-= ((((((((_Unwind_Exception_Class) 'G'
- << 8 | (_Unwind_Exception_Class) 'N')
- << 8 | (_Unwind_Exception_Class) 'U')
- << 8 | (_Unwind_Exception_Class) 'C')
- << 8 | (_Unwind_Exception_Class) 'C')
- << 8 | (_Unwind_Exception_Class) '+')
- << 8 | (_Unwind_Exception_Class) '+')
- << 8 | (_Unwind_Exception_Class) '\0');
-
-// This is the dependent (from std::rethrow_exception) exception class we report
-// "GNUCC++\x01"
-const _Unwind_Exception_Class __gxx_dependent_exception_class
-= ((((((((_Unwind_Exception_Class) 'G'
- << 8 | (_Unwind_Exception_Class) 'N')
- << 8 | (_Unwind_Exception_Class) 'U')
- << 8 | (_Unwind_Exception_Class) 'C')
- << 8 | (_Unwind_Exception_Class) 'C')
- << 8 | (_Unwind_Exception_Class) '+')
- << 8 | (_Unwind_Exception_Class) '+')
- << 8 | (_Unwind_Exception_Class) '\x01');
-
-static inline bool
-__is_gxx_exception_class(_Unwind_Exception_Class c)
-{
- return c == __gxx_primary_exception_class
- || c == __gxx_dependent_exception_class;
-}
-
-// Only checks for primary or dependent, but not that it is a C++ exception at
-// all.
-static inline bool
-__is_dependent_exception(_Unwind_Exception_Class c)
-{
- return (c & 1);
-}
-
-#define __GXX_INIT_PRIMARY_EXCEPTION_CLASS(c) c = __gxx_primary_exception_class
-#define __GXX_INIT_DEPENDENT_EXCEPTION_CLASS(c) \
- c = __gxx_dependent_exception_class
-
-// GNU C++ personality routine, Version 0.
-extern "C" _Unwind_Reason_Code __gxx_personality_v0
- (int, _Unwind_Action, _Unwind_Exception_Class,
- struct _Unwind_Exception *, struct _Unwind_Context *);
-
-// GNU C++ sjlj personality routine, Version 0.
-extern "C" _Unwind_Reason_Code __gxx_personality_sj0
- (int, _Unwind_Action, _Unwind_Exception_Class,
- struct _Unwind_Exception *, struct _Unwind_Context *);
-
-static inline void*
-__gxx_caught_object(_Unwind_Exception* eo)
-{
- // Bad as it looks, this actually works for dependent exceptions too.
- __cxa_exception* header = __get_exception_header_from_ue (eo);
- return header->adjustedPtr;
-}
-#endif // !__ARM_EABI_UNWINDER__
-
-static inline void*
-__get_object_from_ue(_Unwind_Exception* eo) throw()
-{
- return __is_dependent_exception (eo->exception_class) ?
- __get_dependent_exception_from_ue (eo)->primaryException :
- eo + 1;
-}
-
-static inline void *
-__get_object_from_ambiguous_exception(__cxa_exception *p_or_d) throw()
-{
- return __get_object_from_ue (&p_or_d->unwindHeader);
-}
-
-
-} /* namespace __cxxabiv1 */
-
-#pragma GCC visibility pop
-
-#endif // _UNWIND_CXX_H
diff --git a/gcc-4.4.3/libstdc++-v3/libsupc++/vec.cc b/gcc-4.4.3/libstdc++-v3/libsupc++/vec.cc
deleted file mode 100644
index 886e6fc99..000000000
--- a/gcc-4.4.3/libstdc++-v3/libsupc++/vec.cc
+++ /dev/null
@@ -1,511 +0,0 @@
-// New abi Support -*- C++ -*-
-
-// Copyright (C) 2000, 2001, 2003, 2004, 2009 Free Software Foundation, Inc.
-//
-// This file is part of GCC.
-//
-// GCC 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 3, or (at your option)
-// any later version.
-
-// GCC 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.
-
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-// Written by Nathan Sidwell, Codesourcery LLC, <nathan@codesourcery.com>
-
-#include <cxxabi.h>
-#include <new>
-#include <exception>
-#include <exception_defines.h>
-#include "unwind-cxx.h"
-
-namespace __cxxabiv1
-{
- namespace
- {
- struct uncatch_exception
- {
- uncatch_exception();
- ~uncatch_exception () { __cxa_begin_catch (&p->unwindHeader); }
-
- __cxa_exception* p;
-
- private:
- uncatch_exception&
- operator=(const uncatch_exception&);
-
- uncatch_exception(const uncatch_exception&);
- };
-
- uncatch_exception::uncatch_exception() : p(0)
- {
- __cxa_eh_globals *globals = __cxa_get_globals_fast ();
-
- p = globals->caughtExceptions;
- p->handlerCount -= 1;
- globals->caughtExceptions = p->nextException;
- globals->uncaughtExceptions += 1;
- }
- }
-
- // Allocate and construct array.
- extern "C" void *
- __cxa_vec_new(std::size_t element_count,
- std::size_t element_size,
- std::size_t padding_size,
- __cxa_cdtor_type constructor,
- __cxa_cdtor_type destructor)
- {
- return __cxa_vec_new2(element_count, element_size, padding_size,
- constructor, destructor,
- &operator new[], &operator delete []);
- }
-
- extern "C" void *
- __cxa_vec_new2(std::size_t element_count,
- std::size_t element_size,
- std::size_t padding_size,
- __cxa_cdtor_type constructor,
- __cxa_cdtor_type destructor,
- void *(*alloc) (std::size_t),
- void (*dealloc) (void *))
- {
- std::size_t size = element_count * element_size + padding_size;
- char *base = static_cast <char *> (alloc (size));
- if (!base)
- return base;
-
- if (padding_size)
- {
- base += padding_size;
- reinterpret_cast <std::size_t *> (base)[-1] = element_count;
-#ifdef _GLIBCXX_ELTSIZE_IN_COOKIE
- reinterpret_cast <std::size_t *> (base)[-2] = element_size;
-#endif
- }
- try
- {
- __cxa_vec_ctor(base, element_count, element_size,
- constructor, destructor);
- }
- catch (...)
- {
- {
- uncatch_exception ue;
- dealloc(base - padding_size);
- }
- __throw_exception_again;
- }
- return base;
- }
-
- extern "C" void *
- __cxa_vec_new3(std::size_t element_count,
- std::size_t element_size,
- std::size_t padding_size,
- __cxa_cdtor_type constructor,
- __cxa_cdtor_type destructor,
- void *(*alloc) (std::size_t),
- void (*dealloc) (void *, std::size_t))
- {
- std::size_t size = element_count * element_size + padding_size;
- char *base = static_cast<char *>(alloc (size));
- if (!base)
- return base;
-
- if (padding_size)
- {
- base += padding_size;
- reinterpret_cast<std::size_t *>(base)[-1] = element_count;
-#ifdef _GLIBCXX_ELTSIZE_IN_COOKIE
- reinterpret_cast <std::size_t *> (base)[-2] = element_size;
-#endif
- }
- try
- {
- __cxa_vec_ctor(base, element_count, element_size,
- constructor, destructor);
- }
- catch (...)
- {
- {
- uncatch_exception ue;
- dealloc(base - padding_size, size);
- }
- __throw_exception_again;
- }
- return base;
- }
-
- // Construct array.
- extern "C" __cxa_vec_ctor_return_type
- __cxa_vec_ctor(void *array_address,
- std::size_t element_count,
- std::size_t element_size,
- __cxa_cdtor_type constructor,
- __cxa_cdtor_type destructor)
- {
- std::size_t ix = 0;
- char *ptr = static_cast<char *>(array_address);
-
- try
- {
- if (constructor)
- for (; ix != element_count; ix++, ptr += element_size)
- constructor(ptr);
- }
- catch (...)
- {
- {
- uncatch_exception ue;
- __cxa_vec_cleanup(array_address, ix, element_size, destructor);
- }
- __throw_exception_again;
- }
- _GLIBCXX_CXA_VEC_CTOR_RETURN (array_address);
- }
-
- // Construct an array by copying.
- extern "C" __cxa_vec_ctor_return_type
- __cxa_vec_cctor(void *dest_array,
- void *src_array,
- std::size_t element_count,
- std::size_t element_size,
- __cxa_cdtor_return_type (*constructor) (void *, void *),
- __cxa_cdtor_type destructor)
- {
- std::size_t ix = 0;
- char *dest_ptr = static_cast<char *>(dest_array);
- char *src_ptr = static_cast<char *>(src_array);
-
- try
- {
- if (constructor)
- for (; ix != element_count;
- ix++, src_ptr += element_size, dest_ptr += element_size)
- constructor(dest_ptr, src_ptr);
- }
- catch (...)
- {
- {
- uncatch_exception ue;
- __cxa_vec_cleanup(dest_array, ix, element_size, destructor);
- }
- __throw_exception_again;
- }
- _GLIBCXX_CXA_VEC_CTOR_RETURN (dest_array);
- }
-
- // Destruct array.
- extern "C" void
- __cxa_vec_dtor(void *array_address,
- std::size_t element_count,
- std::size_t element_size,
- __cxa_cdtor_type destructor)
- {
- if (destructor)
- {
- char *ptr = static_cast<char *>(array_address);
- std::size_t ix = element_count;
-
- ptr += element_count * element_size;
-
- try
- {
- while (ix--)
- {
- ptr -= element_size;
- destructor(ptr);
- }
- }
- catch (...)
- {
- {
- uncatch_exception ue;
- __cxa_vec_cleanup(array_address, ix, element_size, destructor);
- }
- __throw_exception_again;
- }
- }
- }
-
- // Destruct array as a result of throwing an exception.
- // [except.ctor]/3 If a destructor called during stack unwinding
- // exits with an exception, terminate is called.
- extern "C" void
- __cxa_vec_cleanup(void *array_address,
- std::size_t element_count,
- std::size_t element_size,
- __cxa_cdtor_type destructor)
- {
- if (destructor)
- {
- char *ptr = static_cast <char *> (array_address);
- std::size_t ix = element_count;
-
- ptr += element_count * element_size;
-
- try
- {
- while (ix--)
- {
- ptr -= element_size;
- destructor(ptr);
- }
- }
- catch (...)
- {
- std::terminate();
- }
- }
- }
-
- // Destruct and release array.
- extern "C" void
- __cxa_vec_delete(void *array_address,
- std::size_t element_size,
- std::size_t padding_size,
- __cxa_cdtor_type destructor)
- {
- __cxa_vec_delete2(array_address, element_size, padding_size,
- destructor,
- &operator delete []);
- }
-
- extern "C" void
- __cxa_vec_delete2(void *array_address,
- std::size_t element_size,
- std::size_t padding_size,
- __cxa_cdtor_type destructor,
- void (*dealloc) (void *))
- {
- if (!array_address)
- return;
-
- char* base = static_cast<char *>(array_address);
-
- if (padding_size)
- {
- std::size_t element_count = reinterpret_cast<std::size_t *>(base)[-1];
- base -= padding_size;
- try
- {
- __cxa_vec_dtor(array_address, element_count, element_size,
- destructor);
- }
- catch (...)
- {
- {
- uncatch_exception ue;
- dealloc(base);
- }
- __throw_exception_again;
- }
- }
- dealloc(base);
- }
-
- extern "C" void
- __cxa_vec_delete3(void *array_address,
- std::size_t element_size,
- std::size_t padding_size,
- __cxa_cdtor_type destructor,
- void (*dealloc) (void *, std::size_t))
- {
- if (!array_address)
- return;
-
- char* base = static_cast <char *> (array_address);
- std::size_t size = 0;
-
- if (padding_size)
- {
- std::size_t element_count = reinterpret_cast<std::size_t *> (base)[-1];
- base -= padding_size;
- size = element_count * element_size + padding_size;
- try
- {
- __cxa_vec_dtor(array_address, element_count, element_size,
- destructor);
- }
- catch (...)
- {
- {
- uncatch_exception ue;
- dealloc(base, size);
- }
- __throw_exception_again;
- }
- }
- dealloc(base, size);
- }
-} // namespace __cxxabiv1
-
-#if defined(__arm__) && defined(__ARM_EABI__)
-
-// The ARM C++ ABI requires that the library provide these additional
-// helper functions. There are placed in this file, despite being
-// architecture-specifier, so that the compiler can inline the __cxa
-// functions into these functions as appropriate.
-
-namespace __aeabiv1
-{
- extern "C" void *
- __aeabi_vec_ctor_nocookie_nodtor (void *array_address,
- abi::__cxa_cdtor_type constructor,
- std::size_t element_size,
- std::size_t element_count)
- {
- return abi::__cxa_vec_ctor (array_address, element_count, element_size,
- constructor, /*destructor=*/NULL);
- }
-
- extern "C" void *
- __aeabi_vec_ctor_cookie_nodtor (void *array_address,
- abi::__cxa_cdtor_type constructor,
- std::size_t element_size,
- std::size_t element_count)
- {
- if (array_address == NULL)
- return NULL;
-
- array_address = reinterpret_cast<std::size_t *>(array_address) + 2;
- reinterpret_cast<std::size_t *>(array_address)[-2] = element_size;
- reinterpret_cast<std::size_t *>(array_address)[-1] = element_count;
- return abi::__cxa_vec_ctor (array_address,
- element_count, element_size,
- constructor, /*destructor=*/NULL);
- }
-
- extern "C" void *
- __aeabi_vec_cctor_nocookie_nodtor (void *dest_array,
- void *src_array,
- std::size_t element_size,
- std::size_t element_count,
- void *(*constructor) (void *, void *))
- {
- return abi::__cxa_vec_cctor (dest_array, src_array,
- element_count, element_size,
- constructor, NULL);
- }
-
- extern "C" void *
- __aeabi_vec_new_cookie_noctor (std::size_t element_size,
- std::size_t element_count)
- {
- return abi::__cxa_vec_new(element_count, element_size,
- 2 * sizeof (std::size_t),
- /*constructor=*/NULL, /*destructor=*/NULL);
- }
-
- extern "C" void *
- __aeabi_vec_new_nocookie (std::size_t element_size,
- std::size_t element_count,
- abi::__cxa_cdtor_type constructor)
- {
- return abi::__cxa_vec_new (element_count, element_size, 0, constructor,
- NULL);
- }
-
- extern "C" void *
- __aeabi_vec_new_cookie_nodtor (std::size_t element_size,
- std::size_t element_count,
- abi::__cxa_cdtor_type constructor)
- {
- return abi::__cxa_vec_new(element_count, element_size,
- 2 * sizeof (std::size_t),
- constructor, NULL);
- }
-
- extern "C" void *
- __aeabi_vec_new_cookie(std::size_t element_size,
- std::size_t element_count,
- abi::__cxa_cdtor_type constructor,
- abi::__cxa_cdtor_type destructor)
- {
- return abi::__cxa_vec_new (element_count, element_size,
- 2 * sizeof (std::size_t),
- constructor, destructor);
- }
-
-
- extern "C" void *
- __aeabi_vec_dtor (void *array_address,
- abi::__cxa_cdtor_type destructor,
- std::size_t element_size,
- std::size_t element_count)
- {
- abi::__cxa_vec_dtor (array_address, element_count, element_size,
- destructor);
- return reinterpret_cast<std::size_t*> (array_address) - 2;
- }
-
- extern "C" void *
- __aeabi_vec_dtor_cookie (void *array_address,
- abi::__cxa_cdtor_type destructor)
- {
- if (!array_address)
- return NULL;
-
- abi::__cxa_vec_dtor (array_address,
- reinterpret_cast<std::size_t *>(array_address)[-1],
- reinterpret_cast<std::size_t *>(array_address)[-2],
- destructor);
- return reinterpret_cast<std::size_t*> (array_address) - 2;
- }
-
-
- extern "C" void
- __aeabi_vec_delete (void *array_address,
- abi::__cxa_cdtor_type destructor)
- {
- if (!array_address)
- return;
-
- abi::__cxa_vec_delete (array_address,
- reinterpret_cast<std::size_t *>(array_address)[-2],
- 2 * sizeof (std::size_t),
- destructor);
- }
-
- extern "C" void
- __aeabi_vec_delete3 (void *array_address,
- abi::__cxa_cdtor_type destructor,
- void (*dealloc) (void *, std::size_t))
- {
- if (!array_address)
- return;
-
- abi::__cxa_vec_delete3 (array_address,
- reinterpret_cast<std::size_t *>(array_address)[-2],
- 2 * sizeof (std::size_t),
- destructor, dealloc);
- }
-
- extern "C" void
- __aeabi_vec_delete3_nodtor (void *array_address,
- void (*dealloc) (void *, std::size_t))
- {
- if (!array_address)
- return;
-
- abi::__cxa_vec_delete3 (array_address,
- reinterpret_cast<std::size_t *>(array_address)[-2],
- 2 * sizeof (std::size_t),
- /*destructor=*/NULL, dealloc);
- }
-} // namespace __aeabiv1
-
-#endif // defined(__arm__) && defined(__ARM_EABI__)
diff --git a/gcc-4.4.3/libstdc++-v3/libsupc++/vmi_class_type_info.cc b/gcc-4.4.3/libstdc++-v3/libsupc++/vmi_class_type_info.cc
deleted file mode 100644
index 6904f7723..000000000
--- a/gcc-4.4.3/libstdc++-v3/libsupc++/vmi_class_type_info.cc
+++ /dev/null
@@ -1,359 +0,0 @@
-// Copyright (C) 1994, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2007, 2009
-// Free Software Foundation
-//
-// This file is part of GCC.
-//
-// GCC 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 3, or (at your option)
-// any later version.
-
-// GCC 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.
-
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-#include "tinfo.h"
-
-namespace __cxxabiv1 {
-
-__vmi_class_type_info::
-~__vmi_class_type_info ()
-{}
-
-__class_type_info::__sub_kind __vmi_class_type_info::
-__do_find_public_src (ptrdiff_t src2dst,
- const void *obj_ptr,
- const __class_type_info *src_type,
- const void *src_ptr) const
-{
- if (obj_ptr == src_ptr && *this == *src_type)
- return __contained_public;
-
- for (std::size_t i = __base_count; i--;)
- {
- if (!__base_info[i].__is_public_p ())
- continue; // Not public, can't be here.
-
- const void *base = obj_ptr;
- ptrdiff_t offset = __base_info[i].__offset ();
- bool is_virtual = __base_info[i].__is_virtual_p ();
-
- if (is_virtual)
- {
- if (src2dst == -3)
- continue; // Not a virtual base, so can't be here.
- }
- base = convert_to_base (base, is_virtual, offset);
-
- __sub_kind base_kind = __base_info[i].__base_type->__do_find_public_src
- (src2dst, base, src_type, src_ptr);
- if (contained_p (base_kind))
- {
- if (is_virtual)
- base_kind = __sub_kind (base_kind | __contained_virtual_mask);
- return base_kind;
- }
- }
-
- return __not_contained;
-}
-
-// This is a big hairy function. Although the run-time behaviour of
-// dynamic_cast is simple to describe, it gives rise to some non-obvious
-// behaviour. We also desire to determine as early as possible any definite
-// answer we can get. Because it is unknown what the run-time ratio of
-// succeeding to failing dynamic casts is, we do not know in which direction
-// to bias any optimizations. To that end we make no particular effort towards
-// early fail answers or early success answers. Instead we try to minimize
-// work by filling in things lazily (when we know we need the information),
-// and opportunisticly take early success or failure results.
-bool __vmi_class_type_info::
-__do_dyncast (ptrdiff_t src2dst,
- __sub_kind access_path,
- const __class_type_info *dst_type,
- const void *obj_ptr,
- const __class_type_info *src_type,
- const void *src_ptr,
- __dyncast_result &__restrict result) const
-{
- if (result.whole_details & __flags_unknown_mask)
- result.whole_details = __flags;
-
- if (obj_ptr == src_ptr && *this == *src_type)
- {
- // The src object we started from. Indicate how we are accessible from
- // the most derived object.
- result.whole2src = access_path;
- return false;
- }
- if (*this == *dst_type)
- {
- result.dst_ptr = obj_ptr;
- result.whole2dst = access_path;
- if (src2dst >= 0)
- result.dst2src = adjust_pointer <void> (obj_ptr, src2dst) == src_ptr
- ? __contained_public : __not_contained;
- else if (src2dst == -2)
- result.dst2src = __not_contained;
- return false;
- }
-
- bool result_ambig = false;
- for (std::size_t i = __base_count; i--;)
- {
- __dyncast_result result2 (result.whole_details);
- void const *base = obj_ptr;
- __sub_kind base_access = access_path;
- ptrdiff_t offset = __base_info[i].__offset ();
- bool is_virtual = __base_info[i].__is_virtual_p ();
-
- if (is_virtual)
- base_access = __sub_kind (base_access | __contained_virtual_mask);
- base = convert_to_base (base, is_virtual, offset);
-
- if (!__base_info[i].__is_public_p ())
- {
- if (src2dst == -2 &&
- !(result.whole_details
- & (__non_diamond_repeat_mask | __diamond_shaped_mask)))
- // The hierarchy has no duplicate bases (which might ambiguate
- // things) and where we started is not a public base of what we
- // want (so it cannot be a downcast). There is nothing of interest
- // hiding in a non-public base.
- continue;
- base_access = __sub_kind (base_access & ~__contained_public_mask);
- }
-
- bool result2_ambig
- = __base_info[i].__base_type->__do_dyncast (src2dst, base_access,
- dst_type, base,
- src_type, src_ptr, result2);
- result.whole2src = __sub_kind (result.whole2src | result2.whole2src);
- if (result2.dst2src == __contained_public
- || result2.dst2src == __contained_ambig)
- {
- result.dst_ptr = result2.dst_ptr;
- result.whole2dst = result2.whole2dst;
- result.dst2src = result2.dst2src;
- // Found a downcast which can't be bettered or an ambiguous downcast
- // which can't be disambiguated
- return result2_ambig;
- }
-
- if (!result_ambig && !result.dst_ptr)
- {
- // Not found anything yet.
- result.dst_ptr = result2.dst_ptr;
- result.whole2dst = result2.whole2dst;
- result_ambig = result2_ambig;
- if (result.dst_ptr && result.whole2src != __unknown
- && !(__flags & __non_diamond_repeat_mask))
- // Found dst and src and we don't have repeated bases.
- return result_ambig;
- }
- else if (result.dst_ptr && result.dst_ptr == result2.dst_ptr)
- {
- // Found at same address, must be via virtual. Pick the most
- // accessible path.
- result.whole2dst =
- __sub_kind (result.whole2dst | result2.whole2dst);
- }
- else if ((result.dst_ptr != 0 && result2.dst_ptr != 0)
- || (result.dst_ptr != 0 && result2_ambig)
- || (result2.dst_ptr != 0 && result_ambig))
- {
- // Found two different DST_TYPE bases, or a valid one and a set of
- // ambiguous ones, must disambiguate. See whether SRC_PTR is
- // contained publicly within one of the non-ambiguous choices. If it
- // is in only one, then that's the choice. If it is in both, then
- // we're ambiguous and fail. If it is in neither, we're ambiguous,
- // but don't yet fail as we might later find a third base which does
- // contain SRC_PTR.
-
- __sub_kind new_sub_kind = result2.dst2src;
- __sub_kind old_sub_kind = result.dst2src;
-
- if (contained_p (result.whole2src)
- && (!virtual_p (result.whole2src)
- || !(result.whole_details & __diamond_shaped_mask)))
- {
- // We already found SRC_PTR as a base of most derived, and
- // either it was non-virtual, or the whole hierarchy is
- // not-diamond shaped. Therefore if it is in either choice, it
- // can only be in one of them, and we will already know.
- if (old_sub_kind == __unknown)
- old_sub_kind = __not_contained;
- if (new_sub_kind == __unknown)
- new_sub_kind = __not_contained;
- }
- else
- {
- if (old_sub_kind >= __not_contained)
- ;// already calculated
- else if (contained_p (new_sub_kind)
- && (!virtual_p (new_sub_kind)
- || !(__flags & __diamond_shaped_mask)))
- // Already found inside the other choice, and it was
- // non-virtual or we are not diamond shaped.
- old_sub_kind = __not_contained;
- else
- old_sub_kind = dst_type->__find_public_src
- (src2dst, result.dst_ptr, src_type, src_ptr);
-
- if (new_sub_kind >= __not_contained)
- ;// already calculated
- else if (contained_p (old_sub_kind)
- && (!virtual_p (old_sub_kind)
- || !(__flags & __diamond_shaped_mask)))
- // Already found inside the other choice, and it was
- // non-virtual or we are not diamond shaped.
- new_sub_kind = __not_contained;
- else
- new_sub_kind = dst_type->__find_public_src
- (src2dst, result2.dst_ptr, src_type, src_ptr);
- }
-
- // Neither sub_kind can be contained_ambig -- we bail out early
- // when we find those.
- if (contained_p (__sub_kind (new_sub_kind ^ old_sub_kind)))
- {
- // Only on one choice, not ambiguous.
- if (contained_p (new_sub_kind))
- {
- // Only in new.
- result.dst_ptr = result2.dst_ptr;
- result.whole2dst = result2.whole2dst;
- result_ambig = false;
- old_sub_kind = new_sub_kind;
- }
- result.dst2src = old_sub_kind;
- if (public_p (result.dst2src))
- return false; // Can't be an ambiguating downcast for later discovery.
- if (!virtual_p (result.dst2src))
- return false; // Found non-virtually can't be bettered
- }
- else if (contained_p (__sub_kind (new_sub_kind & old_sub_kind)))
- {
- // In both.
- result.dst_ptr = NULL;
- result.dst2src = __contained_ambig;
- return true; // Fail.
- }
- else
- {
- // In neither publicly, ambiguous for the moment, but keep
- // looking. It is possible that it was private in one or
- // both and therefore we should fail, but that's just tough.
- result.dst_ptr = NULL;
- result.dst2src = __not_contained;
- result_ambig = true;
- }
- }
-
- if (result.whole2src == __contained_private)
- // We found SRC_PTR as a private non-virtual base, therefore all
- // cross casts will fail. We have already found a down cast, if
- // there is one.
- return result_ambig;
- }
-
- return result_ambig;
-}
-
-bool __vmi_class_type_info::
-__do_upcast (const __class_type_info *dst, const void *obj_ptr,
- __upcast_result &__restrict result) const
-{
- if (__class_type_info::__do_upcast (dst, obj_ptr, result))
- return true;
-
- int src_details = result.src_details;
- if (src_details & __flags_unknown_mask)
- src_details = __flags;
-
- for (std::size_t i = __base_count; i--;)
- {
- __upcast_result result2 (src_details);
- const void *base = obj_ptr;
- ptrdiff_t offset = __base_info[i].__offset ();
- bool is_virtual = __base_info[i].__is_virtual_p ();
- bool is_public = __base_info[i].__is_public_p ();
-
- if (!is_public && !(src_details & __non_diamond_repeat_mask))
- // original cannot have an ambiguous base, so skip private bases
- continue;
-
- if (base)
- base = convert_to_base (base, is_virtual, offset);
-
- if (__base_info[i].__base_type->__do_upcast (dst, base, result2))
- {
- if (result2.base_type == nonvirtual_base_type && is_virtual)
- result2.base_type = __base_info[i].__base_type;
- if (contained_p (result2.part2dst) && !is_public)
- result2.part2dst = __sub_kind (result2.part2dst & ~__contained_public_mask);
-
- if (!result.base_type)
- {
- result = result2;
- if (!contained_p (result.part2dst))
- return true; // found ambiguously
-
- if (result.part2dst & __contained_public_mask)
- {
- if (!(__flags & __non_diamond_repeat_mask))
- return true; // cannot have an ambiguous other base
- }
- else
- {
- if (!virtual_p (result.part2dst))
- return true; // cannot have another path
- if (!(__flags & __diamond_shaped_mask))
- return true; // cannot have a more accessible path
- }
- }
- else if (result.dst_ptr != result2.dst_ptr)
- {
- // Found an ambiguity.
- result.dst_ptr = NULL;
- result.part2dst = __contained_ambig;
- return true;
- }
- else if (result.dst_ptr)
- {
- // Ok, found real object via a virtual path.
- result.part2dst
- = __sub_kind (result.part2dst | result2.part2dst);
- }
- else
- {
- // Dealing with a null pointer, need to check vbase
- // containing each of the two choices.
- if (result2.base_type == nonvirtual_base_type
- || result.base_type == nonvirtual_base_type
- || !(*result2.base_type == *result.base_type))
- {
- // Already ambiguous, not virtual or via different virtuals.
- // Cannot match.
- result.part2dst = __contained_ambig;
- return true;
- }
- result.part2dst
- = __sub_kind (result.part2dst | result2.part2dst);
- }
- }
- }
- return result.part2dst != __unknown;
-}
-
-}
diff --git a/gcc-4.4.3/libstdc++-v3/libsupc++/vterminate.cc b/gcc-4.4.3/libstdc++-v3/libsupc++/vterminate.cc
deleted file mode 100644
index 3d05df29d..000000000
--- a/gcc-4.4.3/libstdc++-v3/libsupc++/vterminate.cc
+++ /dev/null
@@ -1,98 +0,0 @@
-// Verbose terminate_handler -*- C++ -*-
-
-// Copyright (C) 2001, 2002, 2004, 2005, 2009 Free Software Foundation
-//
-// 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 3, 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.
-
-// Under Section 7 of GPL version 3, you are granted additional
-// permissions described in the GCC Runtime Library Exception, version
-// 3.1, as published by the Free Software Foundation.
-
-// You should have received a copy of the GNU General Public License and
-// a copy of the GCC Runtime Library Exception along with this program;
-// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-// <http://www.gnu.org/licenses/>.
-
-#include <bits/c++config.h>
-
-#if _GLIBCXX_HOSTED
-#include <cstdlib>
-#include <exception>
-#include <exception_defines.h>
-#include <cxxabi.h>
-# include <cstdio>
-
-using namespace std;
-using namespace abi;
-
-_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
-
- // A replacement for the standard terminate_handler which prints
- // more information about the terminating exception (if any) on
- // stderr.
- void __verbose_terminate_handler()
- {
- static bool terminating;
- if (terminating)
- {
- fputs("terminate called recursively\n", stderr);
- abort ();
- }
- terminating = true;
-
- // Make sure there was an exception; terminate is also called for an
- // attempt to rethrow when there is no suitable exception.
- type_info *t = __cxa_current_exception_type();
- if (t)
- {
- // Note that "name" is the mangled name.
- char const *name = t->name();
- {
- int status = -1;
- char *dem = 0;
-
- dem = __cxa_demangle(name, 0, 0, &status);
-
- fputs("terminate called after throwing an instance of '", stderr);
- if (status == 0)
- fputs(dem, stderr);
- else
- fputs(name, stderr);
- fputs("'\n", stderr);
-
- if (status == 0)
- free(dem);
- }
-
- // If the exception is derived from std::exception, we can
- // give more information.
- try { __throw_exception_again; }
-#ifdef __EXCEPTIONS
- catch (exception &exc)
- {
- char const *w = exc.what();
- fputs(" what(): ", stderr);
- fputs(w, stderr);
- fputs("\n", stderr);
- }
-#endif
- catch (...) { }
- }
- else
- fputs("terminate called without an active exception\n", stderr);
-
- abort();
- }
-
-_GLIBCXX_END_NAMESPACE
-
-#endif