From c9732ce7d527ee3d3adcabe524242221096eedd3 Mon Sep 17 00:00:00 2001 From: Benjamin Kosnik Date: Fri, 30 Jan 2004 17:54:10 +0000 Subject: [PATCH] demangle.cc: Add instantiations. 2004-01-30 Benjamin Kosnik * src/demangle.cc: Add instantiations. * src/Makefile.am: Remove special rules for demangle.lo, demangle.o. * src/Makefile.in: Regenerate. From-SVN: r76978 --- libstdc++-v3/ChangeLog | 6 ++++++ libstdc++-v3/src/Makefile.am | 8 -------- libstdc++-v3/src/Makefile.in | 18 +++++++++--------- libstdc++-v3/src/demangle.cc | 26 +++++++++++++++++++++++++- 4 files changed, 40 insertions(+), 18 deletions(-) diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 0ce3f26..a83d268 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,9 @@ +2004-01-30 Benjamin Kosnik + + * src/demangle.cc: Add instantiations. + * src/Makefile.am: Remove special rules for demangle.lo, demangle.o. + * src/Makefile.in: Regenerate. + 2004-01-30 David Edelsohn * src/allocator.cc: Protect _S_get_thread_id() and diff --git a/libstdc++-v3/src/Makefile.am b/libstdc++-v3/src/Makefile.am index f51ea39..f81db90 100644 --- a/libstdc++-v3/src/Makefile.am +++ b/libstdc++-v3/src/Makefile.am @@ -162,14 +162,6 @@ concept-inst.lo: concept-inst.cc concept-inst.o: concept-inst.cc $(CXXCOMPILE) -D_GLIBCXX_CONCEPT_CHECKS -fimplicit-templates -c $< -# Use special rules for the demangler, so that an additional implicit -# instantiation file is not necessary. -demangle.lo: demangle.cc - $(LTCXXCOMPILE) -fimplicit-templates -c $< -demangle.o: demangle.cc - $(CXXCOMPILE) -fimplicit-templates -c $< - - # AM_CXXFLAGS needs to be in each subdirectory so that it can be # modified in a per-library or per-sub-library way. Need to manually # set this option because CONFIG_CXXFLAGS has to be after diff --git a/libstdc++-v3/src/Makefile.in b/libstdc++-v3/src/Makefile.in index ff570f9..f4165bd 100644 --- a/libstdc++-v3/src/Makefile.in +++ b/libstdc++-v3/src/Makefile.in @@ -219,12 +219,12 @@ AM_CPPFLAGS = $(GLIBCXX_INCLUDES) # Cross compiler support. toolexeclib_LTLIBRARIES = libstdc++.la +@GLIBCXX_BUILD_VERSIONED_SHLIB_FALSE@version_arg = # Symbol versioning for shared libraries. @GLIBCXX_BUILD_VERSIONED_SHLIB_TRUE@version_arg = -Wl,--version-script=libstdc++-symbol.ver -@GLIBCXX_BUILD_VERSIONED_SHLIB_FALSE@version_arg = -@GLIBCXX_BUILD_VERSIONED_SHLIB_TRUE@version_dep = libstdc++-symbol.ver @GLIBCXX_BUILD_VERSIONED_SHLIB_FALSE@version_dep = +@GLIBCXX_BUILD_VERSIONED_SHLIB_TRUE@version_dep = libstdc++-symbol.ver # Source files linked in via configuration/make substitution for a # particular host. @@ -306,6 +306,13 @@ libstdc___la_LDFLAGS = \ # deprecated include files. GLIBCXX_INCLUDE_DIR = $(glibcxx_builddir)/include +# Use special rules for the demangler, so that an additional implicit +# instantiation file is not necessary. +#demangle.lo: demangle.cc +# $(LTCXXCOMPILE) -fimplicit-templates -c $< +#demangle.o: demangle.cc +# $(CXXCOMPILE) -fimplicit-templates -c $< + # AM_CXXFLAGS needs to be in each subdirectory so that it can be # modified in a per-library or per-sub-library way. Need to manually # set this option because CONFIG_CXXFLAGS has to be after @@ -674,13 +681,6 @@ concept-inst.lo: concept-inst.cc concept-inst.o: concept-inst.cc $(CXXCOMPILE) -D_GLIBCXX_CONCEPT_CHECKS -fimplicit-templates -c $< -# Use special rules for the demangler, so that an additional implicit -# instantiation file is not necessary. -demangle.lo: demangle.cc - $(LTCXXCOMPILE) -fimplicit-templates -c $< -demangle.o: demangle.cc - $(CXXCOMPILE) -fimplicit-templates -c $< - # Added bits to build debug library. @GLIBCXX_BUILD_DEBUG_TRUE@all-local: build_debug @GLIBCXX_BUILD_DEBUG_TRUE@install-data-local: install_debug diff --git a/libstdc++-v3/src/demangle.cc b/libstdc++-v3/src/demangle.cc index 58c0767..1221f4c 100644 --- a/libstdc++-v3/src/demangle.cc +++ b/libstdc++-v3/src/demangle.cc @@ -1,6 +1,6 @@ // C++ IA64 / g++ v3 demangler -*- C++ -*- -// Copyright (C) 2003 Free Software Foundation, Inc. +// Copyright (C) 2003, 2004 Free Software Foundation, Inc. // Written by Carlo Wood // // This file is part of the GNU ISO C++ Library. This library is free @@ -165,3 +165,27 @@ namespace __cxxabiv1 return finish(result.data(), result.size(), buf, n, status); } } // namespace __cxxabiv1 + +// Explicit instantiations. +namespace __gnu_cxx +{ + template class demangler::qualifier_list >; + template class demangler::session >; +} // namespace __gnu_cxx + +namespace std +{ + template + void vector::_M_insert_aux(vector::iterator, const int&); + + typedef __gnu_cxx::demangler::substitution_st value_type1; + template + void vector::_M_insert_aux(vector::iterator, + const value_type1&); + + typedef __gnu_cxx::demangler::qualifier > value_type2; + template + void vector::_M_insert_aux(vector::iterator, + const value_type2&); +} + -- 2.7.4