diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 0f9c90f70bc..90bfc9f195a 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,336 @@
+2005-12-18 Benjamin Kosnik
+
+ * include/bits/c++config: Add in revised namespace associations.
+ _GLIBCXX_BEGIN_NAMESPACE: New macro.
+ _GLIBCXX_END_NAMESPACE: Same.
+ _GLIBCXX_BEGIN_NESTED_NAMESPACE: Same.
+ _GLIBCXX_END_NESTED_NAMESPACE: Same.
+ * acinclude.m4 (GLIBCXX_ENABLE_SYMVERS]): Add gnu-versioned-namespace.
+ * configure: Regenerated.
+ * config.h.in: Same.
+ * config/abi/pre/gnu-versioned-namespace.ver: New.
+ * config/abi/pre/gnu.ver (GLIBCXX_3.4.7): Add exports for nested
+ debug mode items.
+ * include/Makefile.am (${host_builddir}/c++config.h): Fill in
+ values for __GLIBCXX__ and _GLIBCXX_NAMESPACE_ASSOCIATION_VERSION.
+ * include/Makefile.in: Regnerate.
+ * src/compatibility.cc: Alias new, nested definitions to exported
+ symbols from non-nested __gnu_debug.
+ * src/Makefile.am: Add in ENABLE_SYMVERS_GNU_NAMESPACE.
+ * src/Makefile.in: Regenerate.
+
+ * docs/html/debug_mode.html: Revise for nested design.
+ * docs/html/debug.html: Use debug qualifications instead of
+ __gnu_debug.
+ * docs/html/configopts.html: Revise documentation for
+ --enable-symvers.
+
+ * include/debug/formatter: Simplify namespace qualifications for
+ current, nested-only reality. Add top-level namespace alias,
+ namespace debug, for debug-mode containers.
+ * include/debug/safe_iterator.h: Same.
+ * include/debug/set.h: Same.
+ * include/debug/hash_multimap.h: Same.
+ * include/debug/hash_set.h: Same.
+ * include/debug/bitset
+ * include/debug/safe_sequence.h: Same.
+ * include/debug/multiset.h: Same.
+ * include/debug/safe_base.h: Same.
+ * include/debug/functions.h: Same.
+ * include/debug/safe_iterator.tcc
+ * include/debug/hash_multiset.h: Same.
+ * include/debug/vector
+ * include/debug/map.h: Same.
+ * include/debug/deque
+ * include/debug/hash_map.h: Same.
+ * include/debug/string
+ * include/debug/macros.h: Same.
+ * include/debug/list
+ * include/debug/debug.h: Same.
+ * include/debug/multimap.h: Same.
+ * src/debug.cc: Same.
+ * testsuite/23_containers/vector/invalidation/1.cc: Cleanups.
+ * testsuite/23_containers/vector/invalidation/2.cc: Same.
+ * testsuite/23_containers/vector/invalidation/3.cc: Same.
+ * testsuite/23_containers/vector/invalidation/4.cc: Same.
+ * testsuite/23_containers/deque/invalidation/1.cc: Same.
+ * testsuite/23_containers/deque/invalidation/2.cc: Same.
+ * testsuite/23_containers/deque/invalidation/3.cc: Same.
+ * testsuite/23_containers/deque/invalidation/4.cc: Same.
+ * testsuite/23_containers/multiset/invalidation/1.cc: Same.
+ * testsuite/23_containers/multiset/invalidation/2.cc: Same.
+ * testsuite/23_containers/multimap/invalidation/1.cc: Same.
+ * testsuite/23_containers/multimap/invalidation/2.cc: Same.
+ * testsuite/23_containers/bitset/invalidation/1.cc: Same.
+ * testsuite/23_containers/bitset/cons/16020.cc: Same.
+ * testsuite/23_containers/bitset/operations/13838.cc: Same.
+ * testsuite/23_containers/list/invalidation/1.cc: Same.
+ * testsuite/23_containers/list/invalidation/2.cc: Same.
+ * testsuite/23_containers/list/invalidation/3.cc: Same.
+ * testsuite/23_containers/list/invalidation/4.cc: Same.
+ * testsuite/23_containers/set/invalidation/1.cc: Same.
+ * testsuite/23_containers/set/invalidation/2.cc: Same.
+ * testsuite/23_containers/map/invalidation/1.cc: Same.
+ * testsuite/23_containers/map/invalidation/2.cc: Same.
+ * testsuite/23_containers/map/insert/16813.cc: Same.
+
+ * include/bits/basic_ios.h: Use _GLIBCXX_BEGIN_NAMESPACE(std) and
+ friends.
+ * include/bits/stl_list.h: Same.
+ * include/bits/stl_map.h: Same.
+ * include/bits/stl_algobase.h: Same.
+ * include/bits/localefwd.h: Same.
+ * include/bits/valarray_array.tcc: Same.
+ * include/bits/valarray_after.h: Same.
+ * include/bits/gslice_array.h: Same.
+ * include/bits/stl_queue.h: Same.
+ * include/bits/gslice.h: Same.
+ * include/bits/locale_facets.tcc: Same.
+ * include/bits/locale_classes.h: Same.
+ * include/bits/stl_set.h: Same.
+ * include/bits/locale_facets.h: Same.
+ * include/bits/stl_stack.h: Same.
+ * include/bits/stl_iterator_base_types.h: Same.
+ * include/bits/stl_heap.h: Same.
+ * include/bits/indirect_array.h: Same.
+ * include/bits/atomicity.h: Same.
+ * include/bits/stream_iterator.h: Same.
+ * include/bits/concurrence.h: Same.
+ * include/bits/basic_string.h: Same.
+ * include/bits/stl_multimap.h: Same.
+ * include/bits/stl_pair.h: Same.
+ * include/bits/basic_ios.tcc: Same.
+ * include/bits/stl_raw_storage_iter.h: Same.
+ * include/bits/stl_vector.h: Same.
+ * include/bits/stl_numeric.h: Same.
+ * include/bits/ios_base.h: Same.
+ * include/bits/stl_deque.h: Same.
+ * include/bits/istream.tcc: Same.
+ * include/bits/postypes.h: Same.
+ * include/bits/stl_multiset.h: Same.
+ * include/bits/mask_array.h: Same.
+ * include/bits/stl_uninitialized.h: Same.
+ * include/bits/ostream.tcc: Same.
+ * include/bits/slice_array.h: Same.
+ * include/bits/boost_concept_check.h: Same.
+ * include/bits/sstream.tcc: Same.
+ * include/bits/stl_iterator_base_funcs.h: Same.
+ * include/bits/char_traits.h: Same.
+ * include/bits/stl_algo.h: Same.
+ * include/bits/stringfwd.h: Same.
+ * include/bits/c++config
+ * include/bits/stl_iterator.h: Same.
+ * include/bits/valarray_array.h: Same.
+ * include/bits/stl_tempbuf.h: Same.
+ * include/bits/vector.tcc: Same.
+ * include/bits/deque.tcc: Same.
+ * include/bits/stl_bvector.h: Same.
+ * include/bits/basic_string.tcc: Same.
+ * include/bits/list.tcc: Same.
+ * include/bits/streambuf_iterator.h: Same.
+ * include/bits/valarray_before.h: Same.
+ * include/bits/stl_construct.h: Same.
+ * include/bits/stl_function.h: Same.
+ * include/bits/cpp_type_traits.h: Same.
+ * include/bits/streambuf.tcc: Same.
+ * include/bits/allocator.h: Same.
+ * include/bits/stl_tree.h: Same.
+ * include/bits/fstream.tcc: Same.
+ * include/bits/stl_relops.h: Same.
+ * include/bits/functexcept.h: Same.
+ * include/std/std_valarray.h: Same.
+ * include/std/std_iostream.h: Same.
+ * include/std/std_streambuf.h: Same.
+ * include/std/std_bitset.h: Same.
+ * include/std/std_iosfwd.h: Same.
+ * include/std/std_iomanip.h: Same.
+ * include/std/std_fstream.h: Same.
+ * include/std/std_limits.h: Same.
+ * include/std/std_stdexcept.h: Same.
+ * include/std/std_istream.h: Same.
+ * include/std/std_complex.h: Same.
+ * include/std/std_memory.h: Same.
+ * include/std/std_ostream.h: Same.
+ * include/std/std_sstream.h: Same.
+ * include/c_std/std_csignal.h: Same.
+ * include/c_std/std_cstdlib.h: Same.
+ * include/c_std/std_cstdio.h: Same.
+ * include/c_std/std_cstdarg.h: Same.
+ * include/c_std/std_cctype.h: Same.
+ * include/c_std/std_cmath.h: Same.
+ * include/c_std/std_ctime.h: Same.
+ * include/c_std/std_clocale.h: Same.
+ * include/c_std/std_csetjmp.h: Same.
+ * include/c_std/std_cwchar.h: Same.
+ * include/c_std/std_cstring.h: Same.
+ * include/c_std/std_cstddef.h: Same.
+ * include/c_std/std_cwctype.h: Same.
+ * include/backward/iterator.h: Same.
+ * include/backward/set.h: Same.
+ * include/backward/hashtable.h: Same.
+ * include/backward/fstream.h: Same.
+ * include/backward/tempbuf.h: Same.
+ * include/backward/istream.h: Same.
+ * include/backward/bvector.h: Same.
+ * include/backward/stack.h: Same.
+ * include/backward/rope.h: Same.
+ * include/backward/complex.h: Same.
+ * include/backward/ostream.h: Same.
+ * include/backward/heap.h: Same.
+ * include/backward/iostream.h: Same.
+ * include/backward/function.h: Same.
+ * include/backward/multimap.h: Same.
+ * include/backward/pair.h: Same.
+ * include/backward/stream.h: Same.
+ * include/backward/iomanip.h: Same.
+ * include/backward/strstream
+ * include/backward/slist.h: Same.
+ * include/backward/tree.h: Same.
+ * include/backward/vector.h: Same.
+ * include/backward/deque.h: Same.
+ * include/backward/multiset.h: Same.
+ * include/backward/list.h: Same.
+ * include/backward/map.h: Same.
+ * include/backward/algobase.h: Same.
+ * include/backward/hash_map.h: Same.
+ * include/backward/algo.h: Same.
+ * include/backward/queue.h: Same.
+ * include/backward/streambuf.h: Same.
+ * src/allocator-inst.cc: Same.
+ * src/complex_io.cc: Same.
+ * src/localename.cc: Same.
+ * src/limits.cc: Same.
+ * src/ios_failure.cc: Same.
+ * src/locale-misc-inst.cc: Same.
+ * src/streambuf-inst.cc: Same.
+ * src/misc-inst.cc: Same.
+ * src/concept-inst.cc: Same.
+ * src/ios_locale.cc: Same.
+ * src/pool_allocator.cc: Same.
+ * src/fstream-inst.cc: Same.
+ * src/istream-inst.cc: Same.
+ * src/string-inst.cc: Same.
+ * src/locale_init.cc: Same.
+ * src/ctype.cc: Same.
+ * src/strstream.cc: Same.
+ * src/ostream-inst.cc: Same.
+ * src/functexcept.cc: Same.
+ * src/streambuf.cc: Same.
+ * src/sstream-inst.cc: Same.
+ * src/ios.cc: Same.
+ * src/valarray-inst.cc: Same.
+ * src/locale.cc: Same.
+ * src/tree.cc: Same.
+ * src/stdexcept.cc: Same.
+ * src/istream.cc: Same.
+ * src/compatibility.cc: Same.
+ * src/locale-inst.cc: Same.
+ * src/globals_io.cc: Same.
+ * src/list.cc: Same.
+ * src/ios_init.cc: Same.
+ * src/locale_facets.cc: Same.
+ * src/codecvt.cc: Same.
+
+ * include/tr1/unordered_map: Use _GLIBCXX_BEGIN_NAMESPACE(tr1).
+ * include/tr1/boost_shared_ptr.h: Same.
+ * include/tr1/tuple
+ * include/tr1/hashtable
+ * include/tr1/type_traits_fwd.h: Same.
+ * include/tr1/unordered_set
+ * include/tr1/functional
+ * include/tr1/ref_fwd.h: Same.
+ * include/tr1/utility
+ * include/tr1/type_traits
+ * include/tr1/array
+
+ * include/ext/hashtable.h: Use _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx).
+ * include/ext/typelist.h: Same.
+ * include/ext/hash_map: Same.
+ * include/ext/rc_string_base.h: Same.
+ * include/ext/pool_allocator.h: Same.
+ * include/ext/iterator: Same.
+ * include/ext/rb_tree: Same.
+ * include/ext/numeric: Same.
+ * include/ext/vstring.tcc: Same.
+ * include/ext/sso_string_base.h: Same.
+ * include/ext/stdio_filebuf.h: Same.
+ * include/ext/algorithm: Same.
+ * include/ext/codecvt_specializations.h: Same.
+ * include/ext/new_allocator.h: Same.
+ * include/ext/array_allocator.h: Same.
+ * include/ext/vstring_util.h: Same.
+ * include/ext/vstring_fwd.h: Same.
+ * include/ext/mt_allocator.h: Same.
+ * include/ext/debug_allocator.h: Same.
+ * include/ext/slist: Same.
+ * include/ext/stdio_sync_filebuf.h: Same.
+ * include/ext/hash_fun.h: Same.
+ * include/ext/malloc_allocator.h: Same.
+ * include/ext/functional: Same.
+ * include/ext/bitmap_allocator.h: Same.
+ * include/ext/pod_char_traits.h: Same.
+ * include/ext/vstring.h: Same.
+ * include/ext/ropeimpl.h: Same.
+ * include/ext/hash_set: Same.
+ * include/ext/memory: Same.
+ * include/ext/rope: Same.
+ * include/bits/boost_concept_check.h: Same.
+ * include/bits/stl_iterator.h: Same.
+ * include/bits/char_traits.h: Same.
+ * include/bits/cpp_type_traits.h: Same.
+ * include/bits/concurrence.h: Same.
+ * include/bits/atomicity.h: Same.
+ * config/locale/gnu/numeric_members.cc: Same.
+ * config/locale/gnu/collate_members.cc: Same.
+ * config/locale/gnu/ctype_members.cc: Same.
+ * config/locale/gnu/c_locale.cc: Same.
+ * config/locale/gnu/codecvt_members.cc: Same.
+ * config/locale/gnu/messages_members.cc: Same.
+ * config/locale/gnu/c_locale.h: Same.
+ * config/locale/gnu/monetary_members.cc: Same.
+ * config/locale/gnu/time_members.cc: Same.
+ * config/locale/ieee_1003.1-2001/c_locale.h: Same.
+ * config/locale/generic/numeric_members.cc: Same.
+ * config/locale/generic/collate_members.cc: Same.
+ * config/locale/generic/ctype_members.cc: Same.
+ * config/locale/generic/c_locale.cc: Same.
+ * config/locale/generic/codecvt_members.cc: Same.
+ * config/locale/generic/messages_members.cc: Same.
+ * config/locale/generic/c_locale.h: Same.
+ * config/locale/generic/monetary_members.cc: Same.
+ * config/locale/generic/time_members.cc: Same.
+ * config/os/aix/atomicity.h: Same.
+ * config/os/irix/atomicity.h: Same.
+ * config/cpu/powerpc/atomicity.h: Same.
+ * config/cpu/cris/atomicity.h: Same.
+ * config/cpu/ia64/atomicity.h: Same.
+ * config/cpu/alpha/atomicity.h: Same.
+ * config/cpu/m68k/atomicity.h: Same.
+ * config/cpu/hppa/atomicity.h: Same.
+ * config/cpu/mips/atomicity.h: Same.
+ * config/cpu/sparc/atomicity.h: Same.
+ * config/cpu/i386/atomicity.h: Same.
+ * config/cpu/i486/atomicity.h: Same.
+ * config/cpu/sh/atomicity.h: Same.
+ * config/cpu/generic/atomicity.h: Same.
+ * config/cpu/s390/atomicity.h: Same.
+ * config/io/c_io_stdio.h: Same.
+ * config/io/basic_file_stdio.cc: Same.
+ * config/io/basic_file_stdio.h: Same.
+ * src/misc-inst.cc: Same.
+ * src/concept-inst.cc: Same.
+ * src/ext-inst.cc: Same.
+ * src/string-inst.cc: Same.
+ * src/pool_allocator.cc: Same.
+ * src/bitmap_allocator.cc: Same.
+ * src/mt_allocator.cc: Same.
+ * libsupc++/exception: Same.
+ * libsupc++/vterminate.cc: Same.
+ * testsuite/ext/hash_map/1.cc: Explicitly qualify __gnu_cxx::hash_map.
+ * testsuite/ext/hash_map/14648.cc: Same.
+
+ * libsupc++/eh_alloc.cc: Correct comment line spacing.
+
2005-12-18 Paolo Carlini
* include/bits/stl_algobase.h (__copy_normal::copy_n): Uglify
diff --git a/libstdc++-v3/Makefile.in b/libstdc++-v3/Makefile.in
index f7d0f70740e..44686de2e47 100644
--- a/libstdc++-v3/Makefile.in
+++ b/libstdc++-v3/Makefile.in
@@ -135,6 +135,8 @@ 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@
EXEEXT = @EXEEXT@
diff --git a/libstdc++-v3/acinclude.m4 b/libstdc++-v3/acinclude.m4
index d32c7996448..716dab55790 100644
--- a/libstdc++-v3/acinclude.m4
+++ b/libstdc++-v3/acinclude.m4
@@ -1685,7 +1685,7 @@ AC_DEFUN([GLIBCXX_ENABLE_SYMVERS], [
GLIBCXX_ENABLE(symvers,$1,[=STYLE],
[enables symbol versioning of the shared library],
- [permit yes|no|gnu|darwin|darwin-export])
+ [permit yes|no|gnu|gnu-versioned-namespace|darwin|darwin-export])
# If we never went through the GLIBCXX_CHECK_LINKER_FEATURES macro, then we
# don't know enough about $LD to do tricks...
@@ -1715,7 +1715,7 @@ if test x$enable_symvers = xdarwin-export ; then
fi
# Check to see if 'gnu' can win.
-if test $enable_symvers = gnu; then
+if test $enable_symvers = gnu || test $enable_symvers = gnu-versioned-namespace; then
# Check to see if libgcc_s exists, indicating that shared libgcc is possible.
AC_MSG_CHECKING([for shared libgcc])
ac_save_CFLAGS="$CFLAGS"
@@ -1778,6 +1778,11 @@ case $enable_symvers in
AC_DEFINE(_GLIBCXX_SYMVER_GNU, 1,
[Define to use GNU versioning in the shared library.])
;;
+ gnu-versioned-namespace)
+ SYMVER_FILE=config/abi/pre/gnu-versioned-namespace.ver
+ AC_DEFINE(_GLIBCXX_SYMVER_GNU_NAMESPACE, 1,
+ [Define to use GNU namespace versioning in the shared library.])
+ ;;
darwin)
SYMVER_FILE=config/abi/pre/gnu.ver
AC_DEFINE(_GLIBCXX_SYMVER_DARWIN, 1,
@@ -1794,6 +1799,7 @@ AC_SUBST(SYMVER_FILE)
AC_SUBST(port_specific_symbol_files)
GLIBCXX_CONDITIONAL(ENABLE_SYMVERS, test $enable_symvers != no)
GLIBCXX_CONDITIONAL(ENABLE_SYMVERS_GNU, test $enable_symvers = gnu)
+GLIBCXX_CONDITIONAL(ENABLE_SYMVERS_GNU_NAMESPACE, test $enable_symvers = gnu-versioned-namespace)
GLIBCXX_CONDITIONAL(ENABLE_SYMVERS_DARWIN, test $enable_symvers = darwin)
AC_MSG_NOTICE(versioning on shared library symbols is $enable_symvers)
diff --git a/libstdc++-v3/config.h.in b/libstdc++-v3/config.h.in
index 124ce6e2c8a..0077a5983cb 100644
--- a/libstdc++-v3/config.h.in
+++ b/libstdc++-v3/config.h.in
@@ -679,6 +679,9 @@
/* Define to use GNU versioning in the shared library. */
#undef _GLIBCXX_SYMVER_GNU
+/* Define to use GNU namespace versioning in the shared library. */
+#undef _GLIBCXX_SYMVER_GNU_NAMESPACE
+
/* Define if C99 functions or macros from , , ,
, and can be used or exposed. */
#undef _GLIBCXX_USE_C99
diff --git a/libstdc++-v3/config/abi/pre/gnu-versioned-namespace.ver b/libstdc++-v3/config/abi/pre/gnu-versioned-namespace.ver
new file mode 100644
index 00000000000..3b9b475dcf1
--- /dev/null
+++ b/libstdc++-v3/config/abi/pre/gnu-versioned-namespace.ver
@@ -0,0 +1,202 @@
+## Linker script for GNU namespace versioning.
+##
+## Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+##
+## This file is part of the libstdc++ version 3 distribution.
+##
+## This file is part of the GNU ISO C++ Library. This library is free
+## software; you can redistribute it and/or modify it under the
+## terms of the GNU General Public License as published by the
+## Free Software Foundation; either version 2, or (at your option)
+## any later version.
+##
+## This library is distributed in the hope that it will be useful,
+## but WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+## GNU General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License along
+## with this library; see the file COPYING. If not, write to the Free
+## Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+## USA.
+
+GLIBCXX_3.7 {
+
+ global:
+
+ # Names inside the 'extern' block are demangled names.
+ extern "C++"
+ {
+ std::_6::*;
+ std::*
+ };
+
+ # operator new(size_t)
+ _Znw[jm];
+ # operator new(size_t, std::nothrow_t const&)
+ _Znw[jm]RKSt9nothrow_t;
+
+ # operator delete(void*)
+ _ZdlPv;
+ # operator delete(void*, std::nothrow_t const&)
+ _ZdlPvRKSt9nothrow_t;
+
+ # operator new[](size_t)
+ _Zna[jm];
+ # operator new[](size_t, std::nothrow_t const&)
+ _Zna[jm]RKSt9nothrow_t;
+
+ # operator delete[](void*)
+ _ZdaPv;
+ # operator delete[](void*, std::nothrow_t const&)
+ _ZdaPvRKSt9nothrow_t;
+
+ # function-scope static objects requires a guard variable.
+ _ZGVNSt*;
+
+ _ZTT*;
+ _ZTV*;
+
+ _ZTI*;
+ _ZTS*;
+
+ _ZTv0_n*;
+
+ # std::__convert_to_v
+ _ZNSt2_614__convert_to_v*;
+
+ # std::__copy_streambufs
+ _ZNSt2_617__copy_streambufsI[cw]NS_11char_traitsI[cw]EEEEiPNS_15basic_streambufIT_T0_EES7_;
+
+ # __gnu_cxx::__atomic_add
+ # __gnu_cxx::__exchange_and_add
+ _ZN9__gnu_cxx2_612__atomic_addEPV[il][il];
+ _ZN9__gnu_cxx2_618__exchange_and_addEPV[li][il];
+
+ # __gnu_cxx::__pool
+ _ZN9__gnu_cxx2_66__poolILb[01]EE13_M_initializeEv;
+ _ZN9__gnu_cxx2_66__poolILb[01]EE16_M_reserve_blockE[jm][jm];
+ _ZN9__gnu_cxx2_66__poolILb[01]EE16_M_reclaim_blockEPc[jm];
+ _ZN9__gnu_cxx2_66__poolILb[01]EE10_M_destroyEv;
+ _ZN9__gnu_cxx2_66__poolILb1EE16_M_get_thread_idEv;
+
+ _ZN9__gnu_cxx2_617__pool_alloc_base9_M_refillE[jm];
+ _ZN9__gnu_cxx2_617__pool_alloc_base16_M_get_free_listE[jm];
+ _ZN9__gnu_cxx2_617__pool_alloc_base12_M_get_mutexEv;
+
+ _ZN9__gnu_cxx2_69free_list6_M_getE[jm];
+ _ZN9__gnu_cxx2_69free_list8_M_clearEv;
+
+ local:
+ *;
+};
+
+
+# Symbols in the support library (libsupc++) have their own tag.
+CXXABI_1.7 {
+
+ global:
+ __cxa_allocate_exception;
+ __cxa_bad_cast;
+ __cxa_bad_typeid;
+ __cxa_begin_catch;
+ __cxa_begin_cleanup;
+ __cxa_call_unexpected;
+ __cxa_current_exception_type;
+ __cxa_demangle;
+ __cxa_end_catch;
+ __cxa_end_cleanup;
+ __cxa_free_exception;
+ __cxa_get_exception_ptr;
+ __cxa_get_globals;
+ __cxa_get_globals_fast;
+ __cxa_guard_abort;
+ __cxa_guard_acquire;
+ __cxa_guard_release;
+ __cxa_pure_virtual;
+ __cxa_rethrow;
+ __cxa_throw;
+ __cxa_type_match;
+ __cxa_vec_cctor;
+ __cxa_vec_cleanup;
+ __cxa_vec_ctor;
+ __cxa_vec_delete2;
+ __cxa_vec_delete3;
+ __cxa_vec_delete;
+ __cxa_vec_dtor;
+ __cxa_vec_new2;
+ __cxa_vec_new3;
+ __cxa_vec_new;
+ __gxx_personality_v0;
+ __gxx_personality_sj0;
+ __dynamic_cast;
+
+ # *_type_info classes, ctor and dtor
+ _ZN10__cxxabiv117__array_type_info*;
+ _ZN10__cxxabiv117__class_type_info*;
+ _ZN10__cxxabiv116__enum_type_info*;
+ _ZN10__cxxabiv120__function_type_info*;
+ _ZN10__cxxabiv123__fundamental_type_info*;
+ _ZN10__cxxabiv117__pbase_type_info*;
+ _ZN10__cxxabiv129__pointer_to_member_type_info*;
+ _ZN10__cxxabiv119__pointer_type_info*;
+ _ZN10__cxxabiv120__si_class_type_info*;
+ _ZN10__cxxabiv121__vmi_class_type_info*;
+
+ # *_type_info classes, member functions
+ _ZNK10__cxxabiv117__class_type_info*;
+ _ZNK10__cxxabiv120__function_type_info*;
+ _ZNK10__cxxabiv117__pbase_type_info*;
+ _ZNK10__cxxabiv129__pointer_to_member_type_info*;
+ _ZNK10__cxxabiv119__pointer_type_info*;
+ _ZNK10__cxxabiv120__si_class_type_info*;
+ _ZNK10__cxxabiv121__vmi_class_type_info*;
+
+ # virtual table
+ _ZTVN10__cxxabiv117__array_type_infoE;
+ _ZTVN10__cxxabiv117__class_type_infoE;
+ _ZTVN10__cxxabiv116__enum_type_infoE;
+ _ZTVN10__cxxabiv120__function_type_infoE;
+ _ZTVN10__cxxabiv123__fundamental_type_infoE;
+ _ZTVN10__cxxabiv117__pbase_type_infoE;
+ _ZTVN10__cxxabiv129__pointer_to_member_type_infoE;
+ _ZTVN10__cxxabiv119__pointer_type_infoE;
+ _ZTVN10__cxxabiv120__si_class_type_infoE;
+ _ZTVN10__cxxabiv121__vmi_class_type_infoE;
+
+ # typeinfo structure (and some names)
+ _ZTI[a-z];
+ _ZTIP[a-z];
+ _ZTIPK[a-z];
+ _ZTIN10__cxxabiv117__array_type_infoE;
+ _ZTIN10__cxxabiv117__class_type_infoE;
+ _ZTIN10__cxxabiv116__enum_type_infoE;
+ _ZTIN10__cxxabiv120__function_type_infoE;
+ _ZTIN10__cxxabiv123__fundamental_type_infoE;
+ _ZTIN10__cxxabiv117__pbase_type_infoE;
+ _ZTIN10__cxxabiv129__pointer_to_member_type_infoE;
+ _ZTIN10__cxxabiv119__pointer_type_infoE;
+ _ZTIN10__cxxabiv120__si_class_type_infoE;
+ _ZTIN10__cxxabiv121__vmi_class_type_infoE;
+
+ # typeinfo name
+ _ZTS[a-z];
+ _ZTSP[a-z];
+ _ZTSPK[a-z];
+ _ZTSN10__cxxabiv117__array_type_infoE;
+ _ZTSN10__cxxabiv117__class_type_infoE;
+ _ZTSN10__cxxabiv116__enum_type_infoE;
+ _ZTSN10__cxxabiv120__function_type_infoE;
+ _ZTSN10__cxxabiv123__fundamental_type_infoE;
+ _ZTSN10__cxxabiv117__pbase_type_infoE;
+ _ZTSN10__cxxabiv129__pointer_to_member_type_infoE;
+ _ZTSN10__cxxabiv119__pointer_type_infoE;
+ _ZTSN10__cxxabiv120__si_class_type_infoE;
+ _ZTSN10__cxxabiv121__vmi_class_type_infoE;
+
+ # __gnu_cxx::_verbose_terminate_handler()
+ _ZN9__gnu_cxx2_627__verbose_terminate_handlerEv;
+
+ local:
+ *;
+};
diff --git a/libstdc++-v3/config/abi/pre/gnu.ver b/libstdc++-v3/config/abi/pre/gnu.ver
index fa13a614e2e..c76bdf94850 100644
--- a/libstdc++-v3/config/abi/pre/gnu.ver
+++ b/libstdc++-v3/config/abi/pre/gnu.ver
@@ -1,9 +1,7 @@
-## Linker script for GNU ld 2.13.91+ only.
+## Linker script for GNU versioning (GNU ld 2.13.91+ only.)
##
## Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
##
-## This file is part of the libstdc++ version 3 distribution.
-##
## 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
@@ -110,15 +108,7 @@ GLIBCXX_3.4 {
std::__num_base::_S_atoms_out;
std::__moneypunct_cache*;
std::__numpunct_cache*;
- std::__timepunct_cache*;
- __gnu_debug::_Safe_iterator_base*;
- __gnu_debug::_Safe_sequence_base*;
- __gnu_debug::_Error_formatter*;
- __gnu_norm::_List_node_base::hook*;
- __gnu_norm::_List_node_base::swap*;
- __gnu_norm::_List_node_base::unhook*;
- __gnu_norm::_List_node_base::reverse*;
- __gnu_norm::_List_node_base::transfer*
+ std::__timepunct_cache*
};
# Names not in an 'extern' block are mangled names.
@@ -337,6 +327,27 @@ GLIBCXX_3.4 {
_ZN9__gnu_cxx12__atomic_add*;
_ZN9__gnu_cxx18__exchange_and_add*;
+ # __gnu_debug
+_ZN10__gnu_norm15_List_node_base4hookEPS0_;
+_ZN10__gnu_norm15_List_node_base4swapERS0_S1_;
+_ZN10__gnu_norm15_List_node_base6unhookEv;
+_ZN10__gnu_norm15_List_node_base7reverseEv;
+_ZN10__gnu_norm15_List_node_base8transferEPS0_S1_;
+_ZN11__gnu_debug19_Safe_iterator_base9_M_attachEPNS_19_Safe_sequence_baseEb;
+_ZN11__gnu_debug19_Safe_iterator_base9_M_detachEv;
+_ZNK11__gnu_debug19_Safe_iterator_base11_M_singularEv;
+_ZNK11__gnu_debug19_Safe_iterator_base14_M_can_compareERKS0_;
+_ZN11__gnu_debug19_Safe_sequence_base13_M_detach_allEv;
+_ZN11__gnu_debug19_Safe_sequence_base18_M_detach_singularEv;
+_ZN11__gnu_debug19_Safe_sequence_base22_M_revalidate_singularEv;
+_ZN11__gnu_debug19_Safe_sequence_base7_M_swapERS0_;
+_ZNK11__gnu_debug16_Error_formatter8_M_errorEv;
+_ZNK11__gnu_debug16_Error_formatter10_M_messageENS_13_Debug_msg_idE;
+_ZNK11__gnu_debug16_Error_formatter10_Parameter14_M_print_fieldEPKS0_PKc;
+_ZNK11__gnu_debug16_Error_formatter10_Parameter20_M_print_descriptionEPKS0_;
+_ZNK11__gnu_debug16_Error_formatter13_M_print_wordEPKc;
+_ZNK11__gnu_debug16_Error_formatter15_M_print_stringEPKc;
+
# operator new(size_t)
_Znw[jm];
# operator new(size_t, std::nothrow_t const&)
@@ -585,6 +596,26 @@ GLIBCXX_3.4.7 {
_ZNSt6locale5_Impl16_M_install_cacheEPKNS_5facetE[jm];
+_ZNSt10__gnu_norm15_List_node_base4hookEPS0_;
+_ZNSt10__gnu_norm15_List_node_base4swapERS0_S1_;
+_ZNSt10__gnu_norm15_List_node_base6unhookEv;
+_ZNSt10__gnu_norm15_List_node_base7reverseEv;
+_ZNSt10__gnu_norm15_List_node_base8transferEPS0_S1_;
+_ZNKSt11__gnu_debug16_Error_formatter8_M_errorEv;
+_ZNKSt11__gnu_debug16_Error_formatter10_M_messageENS_13_Debug_msg_idE;
+_ZNKSt11__gnu_debug16_Error_formatter10_Parameter14_M_print_fieldEPKS0_PKc;
+_ZNKSt11__gnu_debug16_Error_formatter10_Parameter20_M_print_descriptionEPKS0_;
+_ZNKSt11__gnu_debug16_Error_formatter13_M_print_wordEPKc;
+_ZNKSt11__gnu_debug16_Error_formatter15_M_print_stringEPKc;
+_ZNKSt11__gnu_debug19_Safe_iterator_base11_M_singularEv;
+_ZNKSt11__gnu_debug19_Safe_iterator_base14_M_can_compareERKS0_;
+_ZNSt11__gnu_debug19_Safe_iterator_base9_M_attachEPNS_19_Safe_sequence_baseEb;
+_ZNSt11__gnu_debug19_Safe_iterator_base9_M_detachEv;
+_ZNSt11__gnu_debug19_Safe_sequence_base13_M_detach_allEv;
+_ZNSt11__gnu_debug19_Safe_sequence_base18_M_detach_singularEv;
+_ZNSt11__gnu_debug19_Safe_sequence_base22_M_revalidate_singularEv;
+_ZNSt11__gnu_debug19_Safe_sequence_base7_M_swapERS0_;
+
} GLIBCXX_3.4.6;
# Symbols in the support library (libsupc++) have their own tag.
diff --git a/libstdc++-v3/config/abi/pre/none.ver b/libstdc++-v3/config/abi/pre/none.ver
index 58e14135388..39cb10d4dbf 100644
--- a/libstdc++-v3/config/abi/pre/none.ver
+++ b/libstdc++-v3/config/abi/pre/none.ver
@@ -1,7 +1,7 @@
#
# This is a placeholder file. It does nothing and is not used.
#
-# If you are seeing this file as your linker script (named linker.map), then
-# either 1) the configuration process determined that symbol versioning should
-# not be done, or 2) you specifically turned it off.
-#
+# If you are seeing this file as your linker script (named
+# libstdc++-symbols.ver), then either 1) the configuration process
+# determined that symbol versioning should not be done, or 2) you
+# specifically turned it off. (ie, --disable-symvers).
diff --git a/libstdc++-v3/config/cpu/alpha/atomicity.h b/libstdc++-v3/config/cpu/alpha/atomicity.h
index f45b92b91f9..d288483621a 100644
--- a/libstdc++-v3/config/cpu/alpha/atomicity.h
+++ b/libstdc++-v3/config/cpu/alpha/atomicity.h
@@ -30,8 +30,8 @@
#include
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
_Atomic_word
__attribute__ ((__unused__))
__exchange_and_add(volatile _Atomic_word* __mem, int __val)
@@ -41,5 +41,6 @@ namespace __gnu_cxx
__attribute__ ((__unused__))
__atomic_add(volatile _Atomic_word* __mem, int __val)
{ __sync_fetch_and_add(__mem, __val); }
-} // namespace __gnu_cxx
+
+_GLIBCXX_END_NAMESPACE
diff --git a/libstdc++-v3/config/cpu/cris/atomicity.h b/libstdc++-v3/config/cpu/cris/atomicity.h
index f0d8f025df5..0384b42a3d0 100644
--- a/libstdc++-v3/config/cpu/cris/atomicity.h
+++ b/libstdc++-v3/config/cpu/cris/atomicity.h
@@ -29,8 +29,8 @@
#include
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
_Atomic_word
__exchange_and_add(volatile _Atomic_word* __mem, int __val)
{
@@ -74,4 +74,5 @@ namespace __gnu_cxx
void
__atomic_add(volatile _Atomic_word* __mem, int __val)
{ __exchange_and_add(__mem, __val); }
-} // namespace __gnu_cxx
+
+_GLIBCXX_END_NAMESPACE
diff --git a/libstdc++-v3/config/cpu/generic/atomicity.h b/libstdc++-v3/config/cpu/generic/atomicity.h
index ddeea4afb16..5ecb465e862 100644
--- a/libstdc++-v3/config/cpu/generic/atomicity.h
+++ b/libstdc++-v3/config/cpu/generic/atomicity.h
@@ -1,6 +1,7 @@
// Low-level functions for atomic operations: Generic version -*- C++ -*-
-// Copyright (C) 1999, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+// Copyright (C) 1999, 2001, 2002, 2003, 2004, 2005
+// 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
@@ -35,8 +36,8 @@ namespace __gnu_internal
__glibcxx_mutex_define_initialized(atomic_mutex);
} // namespace __gnu_internal
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
_Atomic_word
__attribute__ ((__unused__))
__exchange_and_add(volatile _Atomic_word* __mem, int __val)
@@ -53,4 +54,5 @@ namespace __gnu_cxx
__attribute__ ((__unused__))
__atomic_add(volatile _Atomic_word* __mem, int __val)
{ __exchange_and_add(__mem, __val); }
-} // namespace __gnu_cxx
+
+_GLIBCXX_END_NAMESPACE
diff --git a/libstdc++-v3/config/cpu/hppa/atomicity.h b/libstdc++-v3/config/cpu/hppa/atomicity.h
index 721dd03f68e..1b1c883188f 100644
--- a/libstdc++-v3/config/cpu/hppa/atomicity.h
+++ b/libstdc++-v3/config/cpu/hppa/atomicity.h
@@ -1,6 +1,6 @@
// Low-level functions for atomic operations: PA-RISC version -*- C++ -*-
-// Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2002, 2004, 2005 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
@@ -30,8 +30,8 @@
#include
#include
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
template
struct _Atomicity_lock
{
@@ -94,4 +94,5 @@ namespace __gnu_cxx
__asm__ __volatile__ ("stw,ma %1,0(%0)"
: : "r" (&lock), "r" (tmp) : "memory");
}
-} // namespace __gnu_cxx
+
+_GLIBCXX_END_NAMESPACE
diff --git a/libstdc++-v3/config/cpu/i386/atomicity.h b/libstdc++-v3/config/cpu/i386/atomicity.h
index b670509f2cb..1b31c2d73ae 100644
--- a/libstdc++-v3/config/cpu/i386/atomicity.h
+++ b/libstdc++-v3/config/cpu/i386/atomicity.h
@@ -1,6 +1,6 @@
// Low-level functions for atomic operations: x86, x >= 3 version -*- C++ -*-
-// Copyright (C) 2003, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2003, 2004, 2005 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
@@ -29,8 +29,8 @@
#include
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
template
struct _Atomicity_lock
{
@@ -71,4 +71,5 @@ namespace __gnu_cxx
__attribute__ ((__unused__))
__atomic_add(volatile _Atomic_word* __mem, int __val)
{ __exchange_and_add(__mem, __val); }
-} // namespace __gnu_cxx
+
+_GLIBCXX_END_NAMESPACE
diff --git a/libstdc++-v3/config/cpu/i486/atomicity.h b/libstdc++-v3/config/cpu/i486/atomicity.h
index 977070d32d9..c2cf509ab55 100644
--- a/libstdc++-v3/config/cpu/i486/atomicity.h
+++ b/libstdc++-v3/config/cpu/i486/atomicity.h
@@ -1,6 +1,6 @@
// Low-level functions for atomic operations: x86, x >= 4 version -*- C++ -*-
-// Copyright (C) 1999, 2000, 2001, 2004 Free Software Foundation, Inc.
+// Copyright (C) 1999, 2000, 2001, 2004, 2005 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
@@ -29,8 +29,8 @@
#include
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
_Atomic_word
__attribute__ ((__unused__))
__exchange_and_add(volatile _Atomic_word* __mem, int __val)
@@ -49,5 +49,6 @@ namespace __gnu_cxx
__asm__ __volatile__ ("lock; add{l} {%1,%0|%0,%1}"
: "=m" (*__mem) : "ir" (__val), "m" (*__mem));
}
-} // namespace __gnu_cxx
+
+_GLIBCXX_END_NAMESPACE
diff --git a/libstdc++-v3/config/cpu/ia64/atomicity.h b/libstdc++-v3/config/cpu/ia64/atomicity.h
index 0fd9b3b5a6a..baabeddaded 100644
--- a/libstdc++-v3/config/cpu/ia64/atomicity.h
+++ b/libstdc++-v3/config/cpu/ia64/atomicity.h
@@ -30,8 +30,8 @@
#include
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
_Atomic_word
__attribute__ ((__unused__))
__exchange_and_add(volatile _Atomic_word* __mem, int __val)
@@ -41,4 +41,5 @@ namespace __gnu_cxx
__attribute__ ((__unused__))
__atomic_add(volatile _Atomic_word* __mem, int __val)
{ __sync_fetch_and_add(__mem, __val); }
-}
+
+_GLIBCXX_END_NAMESPACE
diff --git a/libstdc++-v3/config/cpu/m68k/atomicity.h b/libstdc++-v3/config/cpu/m68k/atomicity.h
index 880a3711478..370d77f925e 100644
--- a/libstdc++-v3/config/cpu/m68k/atomicity.h
+++ b/libstdc++-v3/config/cpu/m68k/atomicity.h
@@ -1,6 +1,6 @@
// Low-level functions for atomic operations: m68k version -*- C++ -*-
-// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2003, 2004, 2005 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
@@ -29,8 +29,8 @@
#include
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
#if ( defined(__mc68020__) || defined(__mc68030__) \
|| defined(__mc68040__) || defined(__mc68060__) ) \
&& !defined(__mcpu32__)
@@ -130,4 +130,5 @@ namespace __gnu_cxx
// architecturally guaranteed to be atomic.
__exchange_and_add(__mem, __val);
}
-} // namespace __gnu_cxx
+
+_GLIBCXX_END_NAMESPACE
diff --git a/libstdc++-v3/config/cpu/mips/atomicity.h b/libstdc++-v3/config/cpu/mips/atomicity.h
index 561cd35f41b..aae70dfccf3 100644
--- a/libstdc++-v3/config/cpu/mips/atomicity.h
+++ b/libstdc++-v3/config/cpu/mips/atomicity.h
@@ -1,6 +1,6 @@
// Low-level functions for atomic operations: MIPS version -*- C++ -*-
-// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2003, 2004, 2005 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
@@ -29,8 +29,8 @@
#include
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
_Atomic_word
__attribute__ ((__unused__))
__exchange_and_add(volatile _Atomic_word* __mem, int __val)
@@ -80,4 +80,5 @@ namespace __gnu_cxx
: "r"(__mem), "r"(__val)
: "memory" );
}
-} // namespace __gnu_cxx
+
+_GLIBCXX_END_NAMESPACE
diff --git a/libstdc++-v3/config/cpu/powerpc/atomicity.h b/libstdc++-v3/config/cpu/powerpc/atomicity.h
index 49ad7188822..dbd859208a3 100644
--- a/libstdc++-v3/config/cpu/powerpc/atomicity.h
+++ b/libstdc++-v3/config/cpu/powerpc/atomicity.h
@@ -30,8 +30,8 @@
#include
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
_Atomic_word
__attribute__ ((__unused__))
__exchange_and_add(volatile _Atomic_word* __mem, int __val)
@@ -41,4 +41,5 @@ namespace __gnu_cxx
__attribute__ ((__unused__))
__atomic_add(volatile _Atomic_word* __mem, int __val)
{ __sync_fetch_and_add(__mem, __val); }
-} // namespace __gnu_cxx
+
+_GLIBCXX_END_NAMESPACE
diff --git a/libstdc++-v3/config/cpu/s390/atomicity.h b/libstdc++-v3/config/cpu/s390/atomicity.h
index 1332012d3d4..631795eb23a 100644
--- a/libstdc++-v3/config/cpu/s390/atomicity.h
+++ b/libstdc++-v3/config/cpu/s390/atomicity.h
@@ -1,6 +1,6 @@
// Low-level functions for atomic operations: S/390 version -*- C++ -*-
-// Copyright (C) 2001, 2003, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2003, 2004, 2005 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
@@ -29,8 +29,8 @@
#include
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
_Atomic_word
__attribute__ ((__unused__))
__exchange_and_add(volatile _Atomic_word* __mem, int __val)
@@ -40,4 +40,5 @@ namespace __gnu_cxx
__attribute__ ((__unused__))
__atomic_add(volatile _Atomic_word* __mem, int __val)
{ __sync_fetch_and_add(__mem, __val); }
-} // namespace __gnu_cxx
+
+_GLIBCXX_END_NAMESPACE
diff --git a/libstdc++-v3/config/cpu/sh/atomicity.h b/libstdc++-v3/config/cpu/sh/atomicity.h
index 8760c8b39b3..7a15beb69d5 100644
--- a/libstdc++-v3/config/cpu/sh/atomicity.h
+++ b/libstdc++-v3/config/cpu/sh/atomicity.h
@@ -1,4 +1,4 @@
-// Low-level functions for atomic operations: Generic version -*- C++ -*-
+// Low-level functions for atomic operations: sh version -*- C++ -*-
// Copyright (C) 1999, 2001, 2002, 2003, 2004, 2005
// Free Software Foundation, Inc.
@@ -82,8 +82,8 @@ namespace __gnu_internal
__glibcxx_mutex_define_initialized(atomic_mutex);
} // namespace __gnu_internal
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
_Atomic_word
__attribute__ ((__unused__))
__exchange_and_add(volatile _Atomic_word* __mem, int __val)
@@ -100,7 +100,8 @@ namespace __gnu_cxx
__attribute__ ((__unused__))
__atomic_add(volatile _Atomic_word* __mem, int __val)
{ __exchange_and_add(__mem, __val); }
-} // namespace __gnu_cxx
+
+_GLIBCXX_END_NAMESPACE
#endif /* !__SH4A__ */
diff --git a/libstdc++-v3/config/cpu/sparc/atomicity.h b/libstdc++-v3/config/cpu/sparc/atomicity.h
index e49db77eb30..ad43760dffa 100644
--- a/libstdc++-v3/config/cpu/sparc/atomicity.h
+++ b/libstdc++-v3/config/cpu/sparc/atomicity.h
@@ -1,6 +1,7 @@
// Low-level functions for atomic operations: Sparc version -*- C++ -*-
-// Copyright (C) 1999, 2000, 2001, 2002, 2004 Free Software Foundation, Inc.
+// Copyright (C) 1999, 2000, 2001, 2002, 2004, 2005
+// 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
@@ -29,8 +30,8 @@
#include
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
#ifdef __arch64__
_Atomic_word
__attribute__ ((__unused__))
@@ -122,4 +123,5 @@ namespace __gnu_cxx
: "memory");
}
#endif /* __arch32__ */
-} // namespace __gnu_cxx
+
+_GLIBCXX_END_NAMESPACE
diff --git a/libstdc++-v3/config/io/basic_file_stdio.cc b/libstdc++-v3/config/io/basic_file_stdio.cc
index 071d0b3171f..3f4914b29cd 100644
--- a/libstdc++-v3/config/io/basic_file_stdio.cc
+++ b/libstdc++-v3/config/io/basic_file_stdio.cc
@@ -174,8 +174,9 @@ namespace __gnu_internal
#endif
} // namespace __gnu_internal
-namespace std
-{
+
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
// Definitions for __basic_file.
__basic_file::__basic_file(__c_lock* /*__lock*/)
: _M_cfile(NULL), _M_cfile_created(false) { }
@@ -370,4 +371,6 @@ namespace std
#endif
return 0;
}
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
+
diff --git a/libstdc++-v3/config/io/basic_file_stdio.h b/libstdc++-v3/config/io/basic_file_stdio.h
index 7264f0386ed..75468e09371 100644
--- a/libstdc++-v3/config/io/basic_file_stdio.h
+++ b/libstdc++-v3/config/io/basic_file_stdio.h
@@ -1,6 +1,7 @@
// Wrapper of C-language FILE struct -*- C++ -*-
-// Copyright (C) 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005
+// 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
@@ -44,8 +45,8 @@
#include
#include
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
// Generic declaration.
template
class __basic_file;
@@ -105,6 +106,7 @@ namespace std
streamsize
showmanyc();
};
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
#endif
diff --git a/libstdc++-v3/config/io/c_io_stdio.h b/libstdc++-v3/config/io/c_io_stdio.h
index b756ebda2e3..a1ed94a9c54 100644
--- a/libstdc++-v3/config/io/c_io_stdio.h
+++ b/libstdc++-v3/config/io/c_io_stdio.h
@@ -1,6 +1,7 @@
-// underlying io library -*- C++ -*-
+// Underlying io library details -*- C++ -*-
-// Copyright (C) 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005
+// 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
@@ -36,8 +37,8 @@
#include
#include
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
typedef __gthread_mutex_t __c_lock;
// for basic_file.h
@@ -81,6 +82,7 @@ namespace std
static const __int_type _S_out = 0x10;
static const __int_type _S_trunc = 0x20;
};
-}
+
+_GLIBCXX_END_NAMESPACE
#endif
diff --git a/libstdc++-v3/config/locale/generic/c_locale.cc b/libstdc++-v3/config/locale/generic/c_locale.cc
index d6f67eeae6f..68c3e7670c8 100644
--- a/libstdc++-v3/config/locale/generic/c_locale.cc
+++ b/libstdc++-v3/config/locale/generic/c_locale.cc
@@ -43,8 +43,8 @@
#include
#endif
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
// Specializations for all types used in num_get.
template<>
void
@@ -149,10 +149,11 @@ namespace std
__c_locale
locale::facet::_S_clone_c_locale(__c_locale&)
{ return __c_locale(); }
-} // namespace std
-namespace __gnu_cxx
-{
+_GLIBCXX_END_NAMESPACE
+
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
const char* const category_names[6 + _GLIBCXX_NUM_CATEGORIES] =
{
"LC_CTYPE",
@@ -162,9 +163,11 @@ namespace __gnu_cxx
"LC_MONETARY",
"LC_MESSAGES"
};
-}
-namespace std
-{
+_GLIBCXX_END_NAMESPACE
+
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
const char* const* const locale::_S_categories = __gnu_cxx::category_names;
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
diff --git a/libstdc++-v3/config/locale/generic/c_locale.h b/libstdc++-v3/config/locale/generic/c_locale.h
index cf636ae4f3f..d6e2f65e06e 100644
--- a/libstdc++-v3/config/locale/generic/c_locale.h
+++ b/libstdc++-v3/config/locale/generic/c_locale.h
@@ -1,6 +1,6 @@
// Wrapper for underlying C-language localization -*- C++ -*-
-// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2003, 2004, 2005 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
@@ -44,8 +44,8 @@
#define _GLIBCXX_NUM_CATEGORIES 0
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
typedef int* __c_locale;
// Convert numeric value of type _Tv to string and return length of
@@ -81,6 +81,7 @@ namespace std
}
return __ret;
}
-}
+
+_GLIBCXX_END_NAMESPACE
#endif
diff --git a/libstdc++-v3/config/locale/generic/codecvt_members.cc b/libstdc++-v3/config/locale/generic/codecvt_members.cc
index 3cd35ace879..555c3b3cf36 100644
--- a/libstdc++-v3/config/locale/generic/codecvt_members.cc
+++ b/libstdc++-v3/config/locale/generic/codecvt_members.cc
@@ -1,6 +1,6 @@
// std::codecvt implementation details, generic version -*- C++ -*-
-// Copyright (C) 2002 Free Software Foundation, Inc.
+// Copyright (C) 2002, 2005 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
@@ -35,8 +35,8 @@
#include
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
// Specializations.
#ifdef _GLIBCXX_USE_WCHAR_T
codecvt_base::result
@@ -214,4 +214,5 @@ namespace std
return __ret;
}
#endif
-}
+
+_GLIBCXX_END_NAMESPACE
diff --git a/libstdc++-v3/config/locale/generic/collate_members.cc b/libstdc++-v3/config/locale/generic/collate_members.cc
index d94599ec295..f614037a238 100644
--- a/libstdc++-v3/config/locale/generic/collate_members.cc
+++ b/libstdc++-v3/config/locale/generic/collate_members.cc
@@ -1,6 +1,6 @@
// std::collate implementation details, generic version -*- C++ -*-
-// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2005 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
@@ -35,8 +35,8 @@
#include
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
// These are basically extensions to char_traits, and perhaps should
// be put there instead of here.
template<>
@@ -69,4 +69,5 @@ namespace std
size_t __n) const
{ return wcsxfrm(__to, __from, __n); }
#endif
-}
+
+_GLIBCXX_END_NAMESPACE
diff --git a/libstdc++-v3/config/locale/generic/ctype_members.cc b/libstdc++-v3/config/locale/generic/ctype_members.cc
index 246861707e3..3af4440da8f 100644
--- a/libstdc++-v3/config/locale/generic/ctype_members.cc
+++ b/libstdc++-v3/config/locale/generic/ctype_members.cc
@@ -1,6 +1,6 @@
// std::ctype implementation details, generic version -*- C++ -*-
-// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2003, 2004, 2005 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
@@ -35,8 +35,8 @@
#include
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
// NB: The other ctype specializations are in src/locale.cc and
// various /config/os/* files.
template<>
@@ -264,4 +264,5 @@ namespace std
}
}
#endif // _GLIBCXX_USE_WCHAR_T
-}
+
+_GLIBCXX_END_NAMESPACE
diff --git a/libstdc++-v3/config/locale/generic/messages_members.cc b/libstdc++-v3/config/locale/generic/messages_members.cc
index 96e55c19222..2980ed92fc9 100644
--- a/libstdc++-v3/config/locale/generic/messages_members.cc
+++ b/libstdc++-v3/config/locale/generic/messages_members.cc
@@ -1,6 +1,6 @@
// std::messages implementation details, generic version -*- C++ -*-
-// Copyright (C) 2001 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2005 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
@@ -35,8 +35,8 @@
#include
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
// Specializations
template<>
string
@@ -49,4 +49,5 @@ namespace std
messages::do_get(catalog, int, int, const wstring& __dfault) const
{ return __dfault; }
#endif
-}
+
+_GLIBCXX_END_NAMESPACE
diff --git a/libstdc++-v3/config/locale/generic/monetary_members.cc b/libstdc++-v3/config/locale/generic/monetary_members.cc
index 3a984586796..3abcf338c10 100644
--- a/libstdc++-v3/config/locale/generic/monetary_members.cc
+++ b/libstdc++-v3/config/locale/generic/monetary_members.cc
@@ -1,6 +1,6 @@
// std::moneypunct implementation details, generic version -*- C++ -*-
-// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2003, 2004, 2005 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
@@ -35,8 +35,8 @@
#include
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
// Construct and return valid pattern consisting of some combination of:
// space none symbol sign value
money_base::pattern
@@ -168,4 +168,5 @@ namespace std
moneypunct::~moneypunct()
{ delete _M_data; }
#endif
-}
+
+_GLIBCXX_END_NAMESPACE
diff --git a/libstdc++-v3/config/locale/generic/numeric_members.cc b/libstdc++-v3/config/locale/generic/numeric_members.cc
index cc2fc788bc0..ce4f6487e77 100644
--- a/libstdc++-v3/config/locale/generic/numeric_members.cc
+++ b/libstdc++-v3/config/locale/generic/numeric_members.cc
@@ -1,6 +1,6 @@
// std::numpunct implementation details, generic version -*- C++ -*-
-// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2003, 2004, 2005 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
@@ -35,8 +35,8 @@
#include
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
template<>
void
numpunct::_M_initialize_numpunct(__c_locale)
@@ -103,4 +103,6 @@ namespace std
numpunct::~numpunct()
{ delete _M_data; }
#endif
-}
+
+_GLIBCXX_END_NAMESPACE
+
diff --git a/libstdc++-v3/config/locale/generic/time_members.cc b/libstdc++-v3/config/locale/generic/time_members.cc
index f13ea19e4c6..dbb12ae6848 100644
--- a/libstdc++-v3/config/locale/generic/time_members.cc
+++ b/libstdc++-v3/config/locale/generic/time_members.cc
@@ -1,6 +1,6 @@
// std::time_get, std::time_put implementation, generic version -*- C++ -*-
-// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2003, 2004, 2005 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
@@ -36,8 +36,8 @@
#include
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
template<>
void
__timepunct::
@@ -201,4 +201,5 @@ namespace std
_M_data->_M_amonth12 = L"Dec";
}
#endif
-}
+
+_GLIBCXX_END_NAMESPACE
diff --git a/libstdc++-v3/config/locale/gnu/c_locale.cc b/libstdc++-v3/config/locale/gnu/c_locale.cc
index 7a45a6e9fda..4025fb18b87 100644
--- a/libstdc++-v3/config/locale/gnu/c_locale.cc
+++ b/libstdc++-v3/config/locale/gnu/c_locale.cc
@@ -40,8 +40,8 @@
#include
#include
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
template<>
void
__convert_to_v(const char* __s, float& __v, ios_base::iostate& __err,
@@ -107,10 +107,11 @@ namespace std
__c_locale
locale::facet::_S_clone_c_locale(__c_locale& __cloc)
{ return __duplocale(__cloc); }
-} // namespace std
-namespace __gnu_cxx
-{
+_GLIBCXX_END_NAMESPACE
+
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
const char* const category_names[6 + _GLIBCXX_NUM_CATEGORIES] =
{
"LC_CTYPE",
@@ -126,9 +127,11 @@ namespace __gnu_cxx
"LC_MEASUREMENT",
"LC_IDENTIFICATION"
};
-}
-namespace std
-{
+_GLIBCXX_END_NAMESPACE
+
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
const char* const* const locale::_S_categories = __gnu_cxx::category_names;
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
diff --git a/libstdc++-v3/config/locale/gnu/c_locale.h b/libstdc++-v3/config/locale/gnu/c_locale.h
index d28caf8a4c9..55e160e1b9b 100644
--- a/libstdc++-v3/config/locale/gnu/c_locale.h
+++ b/libstdc++-v3/config/locale/gnu/c_locale.h
@@ -50,14 +50,15 @@
#define _GLIBCXX_NUM_CATEGORIES 6
#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2)
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
extern "C" __typeof(uselocale) __uselocale;
-}
+
+_GLIBCXX_END_NAMESPACE
#endif
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
typedef __locale_t __c_locale;
// Convert numeric value of type _Tv to string and return length of
@@ -96,6 +97,7 @@ namespace std
#endif
return __ret;
}
-}
+
+_GLIBCXX_END_NAMESPACE
#endif
diff --git a/libstdc++-v3/config/locale/gnu/codecvt_members.cc b/libstdc++-v3/config/locale/gnu/codecvt_members.cc
index ae2bc77f3b8..bc454228d67 100644
--- a/libstdc++-v3/config/locale/gnu/codecvt_members.cc
+++ b/libstdc++-v3/config/locale/gnu/codecvt_members.cc
@@ -1,6 +1,6 @@
// std::codecvt implementation details, GNU version -*- C++ -*-
-// Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+// Copyright (C) 2002, 2003, 2005 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
@@ -36,8 +36,8 @@
#include
#include
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
// Specializations.
#ifdef _GLIBCXX_USE_WCHAR_T
codecvt_base::result
@@ -303,4 +303,5 @@ namespace std
return __ret;
}
#endif
-}
+
+_GLIBCXX_END_NAMESPACE
diff --git a/libstdc++-v3/config/locale/gnu/collate_members.cc b/libstdc++-v3/config/locale/gnu/collate_members.cc
index a0a08772c7c..6f6b7581282 100644
--- a/libstdc++-v3/config/locale/gnu/collate_members.cc
+++ b/libstdc++-v3/config/locale/gnu/collate_members.cc
@@ -1,6 +1,6 @@
// std::collate implementation details, GNU version -*- C++ -*-
-// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2005 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
@@ -36,8 +36,8 @@
#include
#include
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
// These are basically extensions to char_traits, and perhaps should
// be put there instead of here.
template<>
@@ -70,4 +70,5 @@ namespace std
size_t __n) const
{ return __wcsxfrm_l(__to, __from, __n, _M_c_locale_collate); }
#endif
-}
+
+_GLIBCXX_END_NAMESPACE
diff --git a/libstdc++-v3/config/locale/gnu/ctype_members.cc b/libstdc++-v3/config/locale/gnu/ctype_members.cc
index 3082b41f80d..cb2887d9b98 100644
--- a/libstdc++-v3/config/locale/gnu/ctype_members.cc
+++ b/libstdc++-v3/config/locale/gnu/ctype_members.cc
@@ -1,6 +1,6 @@
// std::ctype implementation details, GNU version -*- C++ -*-
-// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2003, 2004, 2005 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
@@ -36,8 +36,8 @@
#include
#include
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
// NB: The other ctype specializations are in src/locale.cc and
// various /config/os/* files.
template<>
@@ -300,4 +300,5 @@ namespace std
#endif
}
#endif // _GLIBCXX_USE_WCHAR_T
-}
+
+_GLIBCXX_END_NAMESPACE
diff --git a/libstdc++-v3/config/locale/gnu/messages_members.cc b/libstdc++-v3/config/locale/gnu/messages_members.cc
index c3fc4b5208c..f206e44a636 100644
--- a/libstdc++-v3/config/locale/gnu/messages_members.cc
+++ b/libstdc++-v3/config/locale/gnu/messages_members.cc
@@ -1,6 +1,6 @@
// std::messages implementation details, GNU version -*- C++ -*-
-// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2005 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
@@ -36,8 +36,8 @@
#include
#include
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
// Specializations.
template<>
string
@@ -78,4 +78,5 @@ namespace std
# endif
}
#endif
-}
+
+_GLIBCXX_END_NAMESPACE
diff --git a/libstdc++-v3/config/locale/gnu/monetary_members.cc b/libstdc++-v3/config/locale/gnu/monetary_members.cc
index ba7e242f932..b3cd05d8305 100644
--- a/libstdc++-v3/config/locale/gnu/monetary_members.cc
+++ b/libstdc++-v3/config/locale/gnu/monetary_members.cc
@@ -1,6 +1,6 @@
// std::moneypunct implementation details, GNU version -*- C++ -*-
-// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2003, 2004, 2005 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
@@ -36,8 +36,8 @@
#include
#include
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
// Construct and return valid pattern consisting of some combination of:
// space none symbol sign value
money_base::pattern
@@ -652,4 +652,5 @@ namespace std
delete _M_data;
}
#endif
-}
+
+_GLIBCXX_END_NAMESPACE
diff --git a/libstdc++-v3/config/locale/gnu/numeric_members.cc b/libstdc++-v3/config/locale/gnu/numeric_members.cc
index 8e580f50a34..7a0400b46ca 100644
--- a/libstdc++-v3/config/locale/gnu/numeric_members.cc
+++ b/libstdc++-v3/config/locale/gnu/numeric_members.cc
@@ -1,6 +1,6 @@
// std::numpunct implementation details, GNU version -*- C++ -*-
-// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2003, 2004, 2005 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
@@ -36,8 +36,8 @@
#include
#include
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
template<>
void
numpunct::_M_initialize_numpunct(__c_locale __cloc)
@@ -148,4 +148,5 @@ namespace std
numpunct::~numpunct()
{ delete _M_data; }
#endif
-}
+
+_GLIBCXX_END_NAMESPACE
diff --git a/libstdc++-v3/config/locale/gnu/time_members.cc b/libstdc++-v3/config/locale/gnu/time_members.cc
index bd91dc4dcf2..10faa8fe470 100644
--- a/libstdc++-v3/config/locale/gnu/time_members.cc
+++ b/libstdc++-v3/config/locale/gnu/time_members.cc
@@ -1,6 +1,6 @@
// std::time_get, std::time_put implementation, GNU version -*- C++ -*-
-// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2003, 2004, 2005 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
@@ -37,8 +37,8 @@
#include
#include
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
template<>
void
__timepunct::
@@ -392,4 +392,5 @@ namespace std
}
}
#endif
-}
+
+_GLIBCXX_END_NAMESPACE
diff --git a/libstdc++-v3/config/locale/ieee_1003.1-2001/c_locale.h b/libstdc++-v3/config/locale/ieee_1003.1-2001/c_locale.h
index 1be2d0ab04b..af5dc31729e 100644
--- a/libstdc++-v3/config/locale/ieee_1003.1-2001/c_locale.h
+++ b/libstdc++-v3/config/locale/ieee_1003.1-2001/c_locale.h
@@ -1,6 +1,6 @@
// Wrapper for underlying C-language localization -*- C++ -*-
-// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2005 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
@@ -38,7 +38,9 @@
#include // For codecvt using iconv, iconv_t
#include // For messages
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
typedef int* __c_locale;
-}
+
+_GLIBCXX_END_NAMESPACE
+
diff --git a/libstdc++-v3/config/os/aix/atomicity.h b/libstdc++-v3/config/os/aix/atomicity.h
index 123766cc8a5..b44e630486b 100644
--- a/libstdc++-v3/config/os/aix/atomicity.h
+++ b/libstdc++-v3/config/os/aix/atomicity.h
@@ -1,6 +1,6 @@
// Low-level functions for atomic operations: AIX version -*- C++ -*-
-// Copyright (C) 2000, 2001, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2000, 2001, 2004, 2005 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
@@ -43,8 +43,8 @@ extern "C"
#include
}
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
_Atomic_word
__attribute__ ((__unused__))
__exchange_and_add (volatile _Atomic_word* __mem, int __val)
@@ -58,4 +58,5 @@ namespace __gnu_cxx
{
(void) ::fetch_and_add (const_cast(__mem), __val);
}
-} // namespace __gnu_cxx
+
+_GLIBCXX_END_NAMESPACE
diff --git a/libstdc++-v3/config/os/irix/atomicity.h b/libstdc++-v3/config/os/irix/atomicity.h
index 24b17c99484..9261d26fdbe 100644
--- a/libstdc++-v3/config/os/irix/atomicity.h
+++ b/libstdc++-v3/config/os/irix/atomicity.h
@@ -1,6 +1,6 @@
// Low-level functions for atomic operations: IRIX version -*- C++ -*-
-// Copyright (C) 2001, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2004, 2005 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
@@ -30,8 +30,8 @@
#include
#include
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
_Atomic_word
__exchange_and_add(volatile _Atomic_word* __mem, int __val)
{ return (_Atomic_word) test_then_add((unsigned long*) const_cast<_Atomic_word*>(__mem), __val); }
@@ -39,4 +39,5 @@ namespace __gnu_cxx
void
__atomic_add(volatile _Atomic_word* __mem, int __val)
{ __exchange_and_add(__mem, __val); }
-} // namespace __gnu_cxx
+
+_GLIBCXX_END_NAMESPACE
diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure
index 246e520da1b..b5fbb5bbc76 100755
--- a/libstdc++-v3/configure
+++ b/libstdc++-v3/configure
@@ -309,7 +309,7 @@ ac_includes_default="\
# include
#endif"
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS libtool_VERSION multi_basedir build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar glibcxx_builddir glibcxx_srcdir toplevel_srcdir CC ac_ct_CC EXEEXT OBJEXT CXX ac_ct_CXX CFLAGS CXXFLAGS LN_S AS ac_ct_AS AR ac_ct_AR RANLIB ac_ct_RANLIB MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT LIBTOOL CXXCPP CPPFLAGS enable_shared enable_static GLIBCXX_HOSTED_TRUE GLIBCXX_HOSTED_FALSE GLIBCXX_BUILD_PCH_TRUE GLIBCXX_BUILD_PCH_FALSE glibcxx_PCHFLAGS CSTDIO_H BASIC_FILE_H BASIC_FILE_CC CPP EGREP check_msgfmt glibcxx_MOFILES glibcxx_POFILES glibcxx_localedir USE_NLS CLOCALE_H CMESSAGES_H CCODECVT_CC CCOLLATE_CC CCTYPE_CC CMESSAGES_CC CMONEY_CC CNUMERIC_CC CTIME_H CTIME_CC CLOCALE_CC CLOCALE_INTERNAL_H ALLOCATOR_H ALLOCATOR_NAME C_INCLUDE_DIR GLIBCXX_C_HEADERS_C_TRUE GLIBCXX_C_HEADERS_C_FALSE GLIBCXX_C_HEADERS_C_STD_TRUE GLIBCXX_C_HEADERS_C_STD_FALSE GLIBCXX_C_HEADERS_COMPATIBILITY_TRUE GLIBCXX_C_HEADERS_COMPATIBILITY_FALSE DEBUG_FLAGS GLIBCXX_BUILD_DEBUG_TRUE GLIBCXX_BUILD_DEBUG_FALSE EXTRA_CXX_FLAGS glibcxx_thread_h WERROR SECTION_FLAGS SECTION_LDFLAGS OPT_LDFLAGS LIBMATHOBJS LIBICONV SYMVER_FILE port_specific_symbol_files ENABLE_SYMVERS_TRUE ENABLE_SYMVERS_FALSE ENABLE_SYMVERS_GNU_TRUE ENABLE_SYMVERS_GNU_FALSE ENABLE_SYMVERS_DARWIN_TRUE ENABLE_SYMVERS_DARWIN_FALSE baseline_dir ATOMICITY_SRCDIR ATOMIC_WORD_SRCDIR CPU_DEFINES_SRCDIR ABI_TWEAKS_SRCDIR OS_INC_SRCDIR glibcxx_prefixdir gxx_include_dir glibcxx_toolexecdir glibcxx_toolexeclibdir GLIBCXX_INCLUDES TOPLEVEL_INCLUDES OPTIMIZE_CXXFLAGS WARN_FLAGS LIBSUPCXX_PICFLAGS LIBOBJS LTLIBOBJS'
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS libtool_VERSION multi_basedir build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar glibcxx_builddir glibcxx_srcdir toplevel_srcdir CC ac_ct_CC EXEEXT OBJEXT CXX ac_ct_CXX CFLAGS CXXFLAGS LN_S AS ac_ct_AS AR ac_ct_AR RANLIB ac_ct_RANLIB MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT LIBTOOL CXXCPP CPPFLAGS enable_shared enable_static GLIBCXX_HOSTED_TRUE GLIBCXX_HOSTED_FALSE GLIBCXX_BUILD_PCH_TRUE GLIBCXX_BUILD_PCH_FALSE glibcxx_PCHFLAGS CSTDIO_H BASIC_FILE_H BASIC_FILE_CC CPP EGREP check_msgfmt glibcxx_MOFILES glibcxx_POFILES glibcxx_localedir USE_NLS CLOCALE_H CMESSAGES_H CCODECVT_CC CCOLLATE_CC CCTYPE_CC CMESSAGES_CC CMONEY_CC CNUMERIC_CC CTIME_H CTIME_CC CLOCALE_CC CLOCALE_INTERNAL_H ALLOCATOR_H ALLOCATOR_NAME C_INCLUDE_DIR GLIBCXX_C_HEADERS_C_TRUE GLIBCXX_C_HEADERS_C_FALSE GLIBCXX_C_HEADERS_C_STD_TRUE GLIBCXX_C_HEADERS_C_STD_FALSE GLIBCXX_C_HEADERS_COMPATIBILITY_TRUE GLIBCXX_C_HEADERS_COMPATIBILITY_FALSE DEBUG_FLAGS GLIBCXX_BUILD_DEBUG_TRUE GLIBCXX_BUILD_DEBUG_FALSE EXTRA_CXX_FLAGS glibcxx_thread_h WERROR SECTION_FLAGS SECTION_LDFLAGS OPT_LDFLAGS LIBMATHOBJS LIBICONV SYMVER_FILE port_specific_symbol_files ENABLE_SYMVERS_TRUE ENABLE_SYMVERS_FALSE ENABLE_SYMVERS_GNU_TRUE ENABLE_SYMVERS_GNU_FALSE ENABLE_SYMVERS_GNU_NAMESPACE_TRUE ENABLE_SYMVERS_GNU_NAMESPACE_FALSE ENABLE_SYMVERS_DARWIN_TRUE ENABLE_SYMVERS_DARWIN_FALSE baseline_dir ATOMICITY_SRCDIR ATOMIC_WORD_SRCDIR CPU_DEFINES_SRCDIR ABI_TWEAKS_SRCDIR OS_INC_SRCDIR glibcxx_prefixdir gxx_include_dir glibcxx_toolexecdir glibcxx_toolexeclibdir GLIBCXX_INCLUDES TOPLEVEL_INCLUDES OPTIMIZE_CXXFLAGS WARN_FLAGS LIBSUPCXX_PICFLAGS LIBOBJS LTLIBOBJS'
ac_subst_files=''
# Initialize some variables set by options.
@@ -87368,7 +87368,7 @@ if test "${enable_symvers+set}" = set; then
enableval="$enable_symvers"
case "$enableval" in
- yes|no|gnu|darwin|darwin-export) ;;
+ yes|no|gnu|gnu-versioned-namespace|darwin|darwin-export) ;;
*) { { echo "$as_me:$LINENO: error: Unknown argument to enable/disable symvers" >&5
echo "$as_me: error: Unknown argument to enable/disable symvers" >&2;}
{ (exit 1); exit 1; }; } ;;
@@ -87407,7 +87407,7 @@ if test x$enable_symvers = xdarwin-export ; then
fi
# Check to see if 'gnu' can win.
-if test $enable_symvers = gnu; then
+if test $enable_symvers = gnu || test $enable_symvers = gnu-versioned-namespace; then
# Check to see if libgcc_s exists, indicating that shared libgcc is possible.
echo "$as_me:$LINENO: checking for shared libgcc" >&5
echo $ECHO_N "checking for shared libgcc... $ECHO_C" >&6
@@ -87580,6 +87580,14 @@ case $enable_symvers in
cat >>confdefs.h <<\_ACEOF
#define _GLIBCXX_SYMVER_GNU 1
+_ACEOF
+
+ ;;
+ gnu-versioned-namespace)
+ SYMVER_FILE=config/abi/pre/gnu-versioned-namespace.ver
+
+cat >>confdefs.h <<\_ACEOF
+#define _GLIBCXX_SYMVER_GNU_NAMESPACE 1
_ACEOF
;;
@@ -87606,6 +87614,7 @@ fi
+
{ echo "$as_me:$LINENO: versioning on shared library symbols is $enable_symvers" >&5
echo "$as_me: versioning on shared library symbols is $enable_symvers" >&6;}
@@ -88586,6 +88595,17 @@ fi
+if test $enable_symvers = gnu-versioned-namespace; then
+ ENABLE_SYMVERS_GNU_NAMESPACE_TRUE=
+ ENABLE_SYMVERS_GNU_NAMESPACE_FALSE='#'
+else
+ ENABLE_SYMVERS_GNU_NAMESPACE_TRUE='#'
+ ENABLE_SYMVERS_GNU_NAMESPACE_FALSE=
+fi
+
+
+
+
if test $enable_symvers = darwin; then
ENABLE_SYMVERS_DARWIN_TRUE=
ENABLE_SYMVERS_DARWIN_FALSE='#'
@@ -88952,6 +88972,13 @@ echo "$as_me: error: conditional \"ENABLE_SYMVERS_GNU\" was never defined.
Usually this means the macro was only invoked conditionally." >&2;}
{ (exit 1); exit 1; }; }
fi
+if test -z "${ENABLE_SYMVERS_GNU_NAMESPACE_TRUE}" && test -z "${ENABLE_SYMVERS_GNU_NAMESPACE_FALSE}"; then
+ { { echo "$as_me:$LINENO: error: conditional \"ENABLE_SYMVERS_GNU_NAMESPACE\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"ENABLE_SYMVERS_GNU_NAMESPACE\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+ { (exit 1); exit 1; }; }
+fi
if test -z "${ENABLE_SYMVERS_DARWIN_TRUE}" && test -z "${ENABLE_SYMVERS_DARWIN_FALSE}"; then
{ { echo "$as_me:$LINENO: error: conditional \"ENABLE_SYMVERS_DARWIN\" was never defined.
Usually this means the macro was only invoked conditionally." >&5
@@ -89629,6 +89656,8 @@ s,@ENABLE_SYMVERS_TRUE@,$ENABLE_SYMVERS_TRUE,;t t
s,@ENABLE_SYMVERS_FALSE@,$ENABLE_SYMVERS_FALSE,;t t
s,@ENABLE_SYMVERS_GNU_TRUE@,$ENABLE_SYMVERS_GNU_TRUE,;t t
s,@ENABLE_SYMVERS_GNU_FALSE@,$ENABLE_SYMVERS_GNU_FALSE,;t t
+s,@ENABLE_SYMVERS_GNU_NAMESPACE_TRUE@,$ENABLE_SYMVERS_GNU_NAMESPACE_TRUE,;t t
+s,@ENABLE_SYMVERS_GNU_NAMESPACE_FALSE@,$ENABLE_SYMVERS_GNU_NAMESPACE_FALSE,;t t
s,@ENABLE_SYMVERS_DARWIN_TRUE@,$ENABLE_SYMVERS_DARWIN_TRUE,;t t
s,@ENABLE_SYMVERS_DARWIN_FALSE@,$ENABLE_SYMVERS_DARWIN_FALSE,;t t
s,@baseline_dir@,$baseline_dir,;t t
diff --git a/libstdc++-v3/docs/html/configopts.html b/libstdc++-v3/docs/html/configopts.html
index b396a2d1822..a027c658c37 100644
--- a/libstdc++-v3/docs/html/configopts.html
+++ b/libstdc++-v3/docs/html/configopts.html
@@ -277,14 +277,18 @@ options
--enable-symvers[=style]
+
In 3.1 and later, tries to turn on symbol versioning in the
- shared library (if a shared library has been requested). The
- only 'style' currently supported is 'gnu' which requires that
- a recent version of the GNU linker be in use. With no style
- given, the configure script will try to guess if the 'gnu'
- style can be used, and if so, will turn it on. Hopefully
- people will volunteer to do other 'style' options.
+ shared library (if a shared library has been
+ requested). Values for 'style' that are currently supported
+ are 'gnu', 'gnu-versioned-namespace', 'darwin', and
+ 'darwin-export'. Both gnu- options require that a recent
+ version of the GNU linker be in use. Both darwin options are
+ equivalent. With no style given, the configure script will try
+ to guess if the 'gnu' style can be used, and if so, will turn
+ it on.
+
--enable-libstdcxx-pch
diff --git a/libstdc++-v3/docs/html/debug.html b/libstdc++-v3/docs/html/debug.html
index 0242d4363e3..6bea7f41e7a 100644
--- a/libstdc++-v3/docs/html/debug.html
+++ b/libstdc++-v3/docs/html/debug.html
@@ -163,91 +163,91 @@
std::bitset |
<bitset> |
- __gnu_debug::bitset |
+ debug::bitset |
<debug/bitset> |
std::deque |
<deque> |
- __gnu_debug::deque |
+ debug::deque |
<debug/deque> |
std::list |
<list> |
- __gnu_debug::list |
+ debug::list |
<debug/list> |
std::map |
<map> |
- __gnu_debug::map |
+ debug::map |
<debug/map> |
std::multimap |
<map> |
- __gnu_debug::multimap |
+ debug::multimap |
<debug/map> |
std::multiset |
<set> |
- __gnu_debug::multiset |
+ debug::multiset |
<debug/set> |
std::set |
<set> |
- __gnu_debug::set |
+ debug::set |
<debug/set> |
std::string |
<string> |
- __gnu_debug::string |
+ debug::string |
<debug/string> |
std::wstring |
<string> |
- __gnu_debug::wstring |
+ debug::wstring |
<debug/string> |
std::basic_string |
<string> |
- __gnu_debug::basic_string |
+ debug::basic_string |
<debug/string> |
std::vector |
<vector> |
- __gnu_debug::vector |
+ debug::vector |
<debug/vector> |
__gnu_cxx::hash_map |
<ext/hash_map> |
- __gnu_debug::hash_map |
+ debug::hash_map |
<debug/hash_map> |
__gnu_cxx::hash_multimap |
<ext/hash_map> |
- __gnu_debug::hash_multimap |
+ debug::hash_multimap |
<debug/hash_map> |
__gnu_cxx::hash_set |
<ext/hash_set> |
- __gnu_debug::hash_set |
+ debug::hash_set |
<debug/hash_set> |
__gnu_cxx::hash_multiset |
<ext/hash_set> |
- __gnu_debug::hash_multiset |
+ debug::hash_multiset |
<debug/hash_set> |
@@ -297,16 +297,16 @@
std::basic_string
(no safe iterators)
std::bitset
std::deque
- __gnu_cxx::hash_map
- __gnu_cxx::hash_multimap
- __gnu_cxx::hash_multiset
- __gnu_cxx::hash_set
std::list
std::map
std::multimap
std::multiset
std::set
std::vector
+ __gnu_cxx::hash_map
+ __gnu_cxx::hash_multimap
+ __gnu_cxx::hash_multiset
+ __gnu_cxx::hash_set
diff --git a/libstdc++-v3/docs/html/debug_mode.html b/libstdc++-v3/docs/html/debug_mode.html
index b62ad8f5572..e531fd3fa26 100644
--- a/libstdc++-v3/docs/html/debug_mode.html
+++ b/libstdc++-v3/docs/html/debug_mode.html
@@ -330,68 +330,56 @@ template<typename _Tp, typename _Allocator = allocator<_Tp>
In release mode, we define only the release-mode version of the
component with its standard name and do not include the debugging
component at all. The release mode version is defined within the
- namespace __gnu_norm
, and then associated with namespace
- std
via a "strong using" directive. Minus the
- namespace associations, this method leaves the behavior of release
- mode completely unchanged from its behavior prior to the
- introduction of the libstdc++ debug mode. Here's an example of what
- this ends up looking like, in C++.
+ namespace std
. Minus the namespace associations, this
+ method leaves the behavior of release mode completely unchanged from
+ its behavior prior to the introduction of the libstdc++ debug
+ mode. Here's an example of what this ends up looking like, in
+ C++.
-namespace __gnu_norm
+namespace std
{
- using namespace std;
-
template<typename _Tp, typename _Alloc = allocator<_Tp> >
class list
{
// ...
- };
-} // namespace __gnu_norm
-
-namespace std
-{
- using namespace __gnu_norm __attribute__ ((strong));
-}
+ };
+} // namespace std
-In debug mode we include the release-mode container and also the
-debug-mode container. The release mode version is defined exactly as
-before, and the debug-mode container is defined within the namespace
-__gnu_debug
, which is associated with namespace
+
In debug mode we include the release-mode container (which is now
+defined in in the namespace __gnu_norm
) and also the
+debug-mode container. The debug-mode container is defined within the
+namespace __gnu_debug
, which is associated with namespace
std
via a "strong using" directive. This method allows
the debug- and release-mode versions of the same component to coexist
-at compile-time without causing an unreasonable maintenance burden,
-while minimizing confusion. Again, this boils down to C++ code as
-follows:
+at compile-time and link-time without causing an unreasonable
+maintenance burden, while minimizing confusion. Again, this boils down
+to C++ code as follows:
-namespace __gnu_norm
-{
- using namespace std;
-
- template<typename _Tp, typename _Alloc = allocator<_Tp> >
- class list
- {
- // ...
- };
-} // namespace __gnu_norm
-
-namespace __gnu_debug
-{
- using namespace std;
-
- template<typename _Tp, typename _Alloc = allocator<_Tp> >
- class list
- : public __gnu_norm::list<_Tp, _Alloc>,
- public __gnu_debug::_Safe_sequence<list<_Tp, _Alloc> >
- {
- // ...
- };
-} // namespace __gnu_norm
-
namespace std
{
+ namespace __gnu_norm
+ {
+ template<typename _Tp, typename _Alloc = allocator<_Tp> >
+ class list
+ {
+ // ...
+ };
+ } // namespace __gnu_norm
+
+ namespace __gnu_debug
+ {
+ template<typename _Tp, typename _Alloc = allocator<_Tp> >
+ class list
+ : public __gnu_norm::list<_Tp, _Alloc>,
+ public __gnu_debug::_Safe_sequence<list<_Tp, _Alloc> >
+ {
+ // ...
+ };
+ } // namespace __gnu_norm
+
using namespace __gnu_debug __attribute__ ((strong));
}
diff --git a/libstdc++-v3/include/Makefile.am b/libstdc++-v3/include/Makefile.am
index 0120543646b..e71b76a0ec1 100644
--- a/libstdc++-v3/include/Makefile.am
+++ b/libstdc++-v3/include/Makefile.am
@@ -821,19 +821,30 @@ stamp-host: ${host_headers} ${host_headers_noinst} stamp-${host_alias}
$(STAMP) stamp-host
# Host includes dynamic.
-${host_builddir}/c++config.h: ${top_builddir}/config.h \
- ${glibcxx_srcdir}/include/bits/c++config \
- stamp-${host_alias} \
- ${toplevel_srcdir}/gcc/DATESTAMP
- @cat ${glibcxx_srcdir}/include/bits/c++config > $@ ;\
- sed -e 's/^/#define __GLIBCXX__ /' \
- < ${toplevel_srcdir}/gcc/DATESTAMP >> $@ ;\
+if ENABLE_SYMVERS_GNU_NAMESPACE
+stamp-namespace-version:
+ echo 1 > stamp-namespace-version
+else
+stamp-namespace-version:
+ echo 0 > stamp-namespace-version
+endif
+${host_builddir}/c++config.h: ${CONFIG_HEADER} \
+ ${glibcxx_srcdir}/include/bits/c++config \
+ stamp-${host_alias} \
+ ${toplevel_srcdir}/gcc/DATESTAMP \
+ stamp-namespace-version
+ @date=`cat ${toplevel_srcdir}/gcc/DATESTAMP` ;\
+ nsa_version=`cat stamp-namespace-version` ;\
+ sed -e "s,define __GLIBCXX__,define __GLIBCXX__ $$date," \
+ -e "s,define _GLIBCXX_NAMESPACE_ASSOCIATION_VERSION, define _GLIBCXX_NAMESPACE_ASSOCIATION_VERSION $$nsa_version," \
+ < ${glibcxx_srcdir}/include/bits/c++config > $@ ;\
sed -e 's/HAVE_/_GLIBCXX_HAVE_/g' \
-e 's/PACKAGE/_GLIBCXX_PACKAGE/g' \
-e 's/VERSION/_GLIBCXX_VERSION/g' \
-e 's/WORDS_/_GLIBCXX_WORDS_/g' \
< ${CONFIG_HEADER} >> $@ ;\
- echo "#endif // _CXXCONFIG_" >>$@
+ echo "" >> $@ ;\
+ echo "#endif // _CXXCONFIG_" >> $@
# Host includes for threads
uppercase = [ABCDEFGHIJKLMNOPQRSTUVWXYZ_]
diff --git a/libstdc++-v3/include/Makefile.in b/libstdc++-v3/include/Makefile.in
index 590a1076934..6c97c63c249 100644
--- a/libstdc++-v3/include/Makefile.in
+++ b/libstdc++-v3/include/Makefile.in
@@ -103,6 +103,8 @@ 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@
EXEEXT = @EXEEXT@
@@ -1201,19 +1203,27 @@ stamp-host: ${host_headers} ${host_headers_noinst} stamp-${host_alias}
$(STAMP) stamp-host
# Host includes dynamic.
-${host_builddir}/c++config.h: ${top_builddir}/config.h \
- ${glibcxx_srcdir}/include/bits/c++config \
- stamp-${host_alias} \
- ${toplevel_srcdir}/gcc/DATESTAMP
- @cat ${glibcxx_srcdir}/include/bits/c++config > $@ ;\
- sed -e 's/^/#define __GLIBCXX__ /' \
- < ${toplevel_srcdir}/gcc/DATESTAMP >> $@ ;\
+@ENABLE_SYMVERS_GNU_NAMESPACE_TRUE@stamp-namespace-version:
+@ENABLE_SYMVERS_GNU_NAMESPACE_TRUE@ echo 1 > stamp-namespace-version
+@ENABLE_SYMVERS_GNU_NAMESPACE_FALSE@stamp-namespace-version:
+@ENABLE_SYMVERS_GNU_NAMESPACE_FALSE@ echo 0 > stamp-namespace-version
+${host_builddir}/c++config.h: ${CONFIG_HEADER} \
+ ${glibcxx_srcdir}/include/bits/c++config \
+ stamp-${host_alias} \
+ ${toplevel_srcdir}/gcc/DATESTAMP \
+ stamp-namespace-version
+ @date=`cat ${toplevel_srcdir}/gcc/DATESTAMP` ;\
+ nsa_version=`cat stamp-namespace-version` ;\
+ sed -e "s,define __GLIBCXX__,define __GLIBCXX__ $$date," \
+ -e "s,define _GLIBCXX_NAMESPACE_ASSOCIATION_VERSION, define _GLIBCXX_NAMESPACE_ASSOCIATION_VERSION $$nsa_version," \
+ < ${glibcxx_srcdir}/include/bits/c++config > $@ ;\
sed -e 's/HAVE_/_GLIBCXX_HAVE_/g' \
-e 's/PACKAGE/_GLIBCXX_PACKAGE/g' \
-e 's/VERSION/_GLIBCXX_VERSION/g' \
-e 's/WORDS_/_GLIBCXX_WORDS_/g' \
< ${CONFIG_HEADER} >> $@ ;\
- echo "#endif // _CXXCONFIG_" >>$@
+ echo "" >> $@ ;\
+ echo "#endif // _CXXCONFIG_" >> $@
${host_builddir}/gthr.h: ${toplevel_srcdir}/gcc/gthr.h stamp-${host_alias}
sed -e '/^#pragma/b' \
diff --git a/libstdc++-v3/include/backward/algo.h b/libstdc++-v3/include/backward/algo.h
index aaa8cdd3bdb..247460105a4 100644
--- a/libstdc++-v3/include/backward/algo.h
+++ b/libstdc++-v3/include/backward/algo.h
@@ -143,7 +143,3 @@ using __gnu_cxx::power;
using __gnu_cxx::iota;
#endif /* _BACKWARD_ALGO_H */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/libstdc++-v3/include/backward/algobase.h b/libstdc++-v3/include/backward/algobase.h
index 19bdcadf672..289e9886d1c 100644
--- a/libstdc++-v3/include/backward/algobase.h
+++ b/libstdc++-v3/include/backward/algobase.h
@@ -89,7 +89,3 @@ using __gnu_cxx::lexicographical_compare_3way;
using __gnu_cxx::uninitialized_copy_n;
#endif /* _BACKWARD_ALGOBASE_H */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/libstdc++-v3/include/backward/bvector.h b/libstdc++-v3/include/backward/bvector.h
index 10bafc8436c..9a2c44da144 100644
--- a/libstdc++-v3/include/backward/bvector.h
+++ b/libstdc++-v3/include/backward/bvector.h
@@ -62,7 +62,3 @@
typedef std::vector > bit_vector;
#endif /* _BACKWARD_BVECTOR_H */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/libstdc++-v3/include/backward/complex.h b/libstdc++-v3/include/backward/complex.h
index b03072e475c..7972cf7303f 100644
--- a/libstdc++-v3/include/backward/complex.h
+++ b/libstdc++-v3/include/backward/complex.h
@@ -37,7 +37,3 @@ typedef complex double_complex;
typedef complex long_double_complex;
#endif
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/libstdc++-v3/include/backward/deque.h b/libstdc++-v3/include/backward/deque.h
index 54b65ecce60..a4a6b418117 100644
--- a/libstdc++-v3/include/backward/deque.h
+++ b/libstdc++-v3/include/backward/deque.h
@@ -64,7 +64,3 @@
using std::deque;
#endif /* _BACKWARD_DEQUE_H */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/libstdc++-v3/include/backward/fstream.h b/libstdc++-v3/include/backward/fstream.h
index c721ca5f312..92835f9b844 100644
--- a/libstdc++-v3/include/backward/fstream.h
+++ b/libstdc++-v3/include/backward/fstream.h
@@ -46,7 +46,3 @@ using std::wstreampos;
#endif
#endif
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/libstdc++-v3/include/backward/function.h b/libstdc++-v3/include/backward/function.h
index e7f29a636a8..b5be371d8cd 100644
--- a/libstdc++-v3/include/backward/function.h
+++ b/libstdc++-v3/include/backward/function.h
@@ -124,7 +124,3 @@ using __gnu_cxx::mem_fun1;
using __gnu_cxx::mem_fun1_ref;
#endif /* _BACKWARD_FUNCTION_H */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/libstdc++-v3/include/backward/hash_map.h b/libstdc++-v3/include/backward/hash_map.h
index cbeed9947cb..aa1452200a3 100644
--- a/libstdc++-v3/include/backward/hash_map.h
+++ b/libstdc++-v3/include/backward/hash_map.h
@@ -66,7 +66,3 @@ using __gnu_cxx::hash_map;
using __gnu_cxx::hash_multimap;
#endif /* _BACKWARD_HASH_MAP_H */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/libstdc++-v3/include/backward/hashtable.h b/libstdc++-v3/include/backward/hashtable.h
index 72fd281ba6e..7b7511b832c 100644
--- a/libstdc++-v3/include/backward/hashtable.h
+++ b/libstdc++-v3/include/backward/hashtable.h
@@ -70,7 +70,3 @@ using __gnu_cxx::hash;
using __gnu_cxx::hashtable;
#endif /* _BACKWARD_HASHTABLE_H */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/libstdc++-v3/include/backward/heap.h b/libstdc++-v3/include/backward/heap.h
index 6e02c355b3c..ef2e68475aa 100644
--- a/libstdc++-v3/include/backward/heap.h
+++ b/libstdc++-v3/include/backward/heap.h
@@ -65,7 +65,3 @@ using std::make_heap;
using std::sort_heap;
#endif /* _BACKWARD_HEAP_H */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/libstdc++-v3/include/backward/iomanip.h b/libstdc++-v3/include/backward/iomanip.h
index aeb7b1f6c34..a4099a7bec4 100644
--- a/libstdc++-v3/include/backward/iomanip.h
+++ b/libstdc++-v3/include/backward/iomanip.h
@@ -64,7 +64,3 @@ using std::setprecision;
using std::setw;
#endif
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/libstdc++-v3/include/backward/iostream.h b/libstdc++-v3/include/backward/iostream.h
index e22d1131151..ed275ffa98d 100644
--- a/libstdc++-v3/include/backward/iostream.h
+++ b/libstdc++-v3/include/backward/iostream.h
@@ -54,7 +54,3 @@ using std::ends;
using std::flush;
#endif
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/libstdc++-v3/include/backward/istream.h b/libstdc++-v3/include/backward/istream.h
index 7db8f41a79b..b1c55d18991 100644
--- a/libstdc++-v3/include/backward/istream.h
+++ b/libstdc++-v3/include/backward/istream.h
@@ -32,12 +32,3 @@
#include "iostream.h"
#endif
-
-// Local Variables:
-// mode:C++
-// End:
-
-
-
-
-
diff --git a/libstdc++-v3/include/backward/iterator.h b/libstdc++-v3/include/backward/iterator.h
index 815bd151066..89496fb8fff 100644
--- a/libstdc++-v3/include/backward/iterator.h
+++ b/libstdc++-v3/include/backward/iterator.h
@@ -185,7 +185,3 @@ template
using std::raw_storage_iterator;
#endif /* _BACKWARD_ITERATOR_H */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/libstdc++-v3/include/backward/list.h b/libstdc++-v3/include/backward/list.h
index f8f85e1211d..d70a6e4ae7d 100644
--- a/libstdc++-v3/include/backward/list.h
+++ b/libstdc++-v3/include/backward/list.h
@@ -64,7 +64,3 @@
using std::list;
#endif /* _BACKWARD_LIST_H */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/libstdc++-v3/include/backward/map.h b/libstdc++-v3/include/backward/map.h
index 0b5051dce53..2ff3cec667e 100644
--- a/libstdc++-v3/include/backward/map.h
+++ b/libstdc++-v3/include/backward/map.h
@@ -63,7 +63,3 @@
using std::map;
#endif /* _BACKWARD_MAP_H */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/libstdc++-v3/include/backward/multimap.h b/libstdc++-v3/include/backward/multimap.h
index 534d1c9e5e0..515d2995049 100644
--- a/libstdc++-v3/include/backward/multimap.h
+++ b/libstdc++-v3/include/backward/multimap.h
@@ -63,7 +63,3 @@
using std::multimap;
#endif /* _BACKWARD_MULTIMAP_H */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/libstdc++-v3/include/backward/multiset.h b/libstdc++-v3/include/backward/multiset.h
index 47af8153b61..1f857ae6eb0 100644
--- a/libstdc++-v3/include/backward/multiset.h
+++ b/libstdc++-v3/include/backward/multiset.h
@@ -63,7 +63,3 @@
using std::multiset;
#endif /* _BACKWARD_MULTISET_H */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/libstdc++-v3/include/backward/ostream.h b/libstdc++-v3/include/backward/ostream.h
index f30ebe4dd89..07ef9b0f2b3 100644
--- a/libstdc++-v3/include/backward/ostream.h
+++ b/libstdc++-v3/include/backward/ostream.h
@@ -32,7 +32,3 @@
#include "iostream.h"
#endif
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/libstdc++-v3/include/backward/pair.h b/libstdc++-v3/include/backward/pair.h
index fa89efe0555..4985bcbfdd2 100644
--- a/libstdc++-v3/include/backward/pair.h
+++ b/libstdc++-v3/include/backward/pair.h
@@ -64,7 +64,3 @@ using std::pair;
using std::make_pair;
#endif /* _BACKWARD_PAIR_H */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/libstdc++-v3/include/backward/queue.h b/libstdc++-v3/include/backward/queue.h
index 1da475c03c1..da7505c28d1 100644
--- a/libstdc++-v3/include/backward/queue.h
+++ b/libstdc++-v3/include/backward/queue.h
@@ -35,7 +35,3 @@ using std::queue;
using std::priority_queue;
#endif
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/libstdc++-v3/include/backward/rope.h b/libstdc++-v3/include/backward/rope.h
index 6745c487c3a..71e88153267 100644
--- a/libstdc++-v3/include/backward/rope.h
+++ b/libstdc++-v3/include/backward/rope.h
@@ -54,7 +54,3 @@ using __gnu_cxx::crope;
using __gnu_cxx::wrope;
#endif /* _BACKWARD_ROPE_H */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/libstdc++-v3/include/backward/set.h b/libstdc++-v3/include/backward/set.h
index 004349425e5..3c6a390cf49 100644
--- a/libstdc++-v3/include/backward/set.h
+++ b/libstdc++-v3/include/backward/set.h
@@ -63,7 +63,3 @@
using std::set;
#endif /* _BACKWARD_SET_H */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/libstdc++-v3/include/backward/slist.h b/libstdc++-v3/include/backward/slist.h
index 3764a77b8ad..9b9a43d3f0d 100644
--- a/libstdc++-v3/include/backward/slist.h
+++ b/libstdc++-v3/include/backward/slist.h
@@ -50,7 +50,3 @@
using __gnu_cxx::slist;
#endif /* _BACKWARD_SLIST_H */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/libstdc++-v3/include/backward/stack.h b/libstdc++-v3/include/backward/stack.h
index a4c586aecf8..07df41769e0 100644
--- a/libstdc++-v3/include/backward/stack.h
+++ b/libstdc++-v3/include/backward/stack.h
@@ -66,7 +66,3 @@
using std::stack;
#endif /* _BACKWARD_STACK_H */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/libstdc++-v3/include/backward/stream.h b/libstdc++-v3/include/backward/stream.h
index ab27241fb2e..c137601e676 100644
--- a/libstdc++-v3/include/backward/stream.h
+++ b/libstdc++-v3/include/backward/stream.h
@@ -32,7 +32,3 @@
#include "iostream.h"
#endif
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/libstdc++-v3/include/backward/streambuf.h b/libstdc++-v3/include/backward/streambuf.h
index 86730ecbe12..bac24495a05 100644
--- a/libstdc++-v3/include/backward/streambuf.h
+++ b/libstdc++-v3/include/backward/streambuf.h
@@ -34,7 +34,3 @@
using std::streambuf;
#endif
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/libstdc++-v3/include/backward/strstream b/libstdc++-v3/include/backward/strstream
index a8d94f40024..d0d5a13863f 100644
--- a/libstdc++-v3/include/backward/strstream
+++ b/libstdc++-v3/include/backward/strstream
@@ -1,6 +1,6 @@
// Backward-compat support -*- C++ -*-
-// Copyright (C) 2001, 2002, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2004, 2005 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
@@ -55,8 +55,8 @@
#include
#include
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
// Class strstreambuf, a streambuf class that manages an array of char.
// Note that this class is not a template.
class strstreambuf : public basic_streambuf >
@@ -175,5 +175,7 @@ namespace std
private:
strstreambuf _M_buf;
};
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
+
#endif
diff --git a/libstdc++-v3/include/backward/tempbuf.h b/libstdc++-v3/include/backward/tempbuf.h
index c42db0365ae..af6e57daa3b 100644
--- a/libstdc++-v3/include/backward/tempbuf.h
+++ b/libstdc++-v3/include/backward/tempbuf.h
@@ -72,7 +72,3 @@ using std::return_temporary_buffer;
using __gnu_cxx::temporary_buffer;
#endif /* _BACKWARD_TEMPBUF_H */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/libstdc++-v3/include/backward/tree.h b/libstdc++-v3/include/backward/tree.h
index 25e49561e18..88a2f1d7c82 100644
--- a/libstdc++-v3/include/backward/tree.h
+++ b/libstdc++-v3/include/backward/tree.h
@@ -50,6 +50,3 @@
using __gnu_cxx::rb_tree;
#endif
-// Local Variables:
-// mode:C++
-// End:
diff --git a/libstdc++-v3/include/backward/vector.h b/libstdc++-v3/include/backward/vector.h
index f4ab069d228..8cd8dd0f360 100644
--- a/libstdc++-v3/include/backward/vector.h
+++ b/libstdc++-v3/include/backward/vector.h
@@ -64,7 +64,3 @@
using std::vector;
#endif /* _BACKWARD_VECTOR_H */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/libstdc++-v3/include/bits/allocator.h b/libstdc++-v3/include/bits/allocator.h
index 5bba2a95e73..18bfd5f60eb 100644
--- a/libstdc++-v3/include/bits/allocator.h
+++ b/libstdc++-v3/include/bits/allocator.h
@@ -51,8 +51,8 @@
// Define the base class to std::allocator.
#include
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
template
class allocator;
@@ -127,6 +127,7 @@ namespace std
// Undefine.
#undef __glibcxx_base_allocator
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
#endif
diff --git a/libstdc++-v3/include/bits/atomicity.h b/libstdc++-v3/include/bits/atomicity.h
index aa73736ab62..f436e0bdc00 100644
--- a/libstdc++-v3/include/bits/atomicity.h
+++ b/libstdc++-v3/include/bits/atomicity.h
@@ -1,6 +1,6 @@
// Low-level functions for atomic operations -*- C++ -*-
-// Copyright (C) 2004 Free Software Foundation, Inc.
+// Copyright (C) 2004, 2005 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
@@ -35,10 +35,11 @@
#ifndef _GLIBCXX_ATOMICITY_H
#define _GLIBCXX_ATOMICITY_H 1
+#include
#include
-
-namespace __gnu_cxx
-{
+
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
_Atomic_word
__attribute__ ((__unused__))
__exchange_and_add(volatile _Atomic_word* __mem, int __val);
@@ -46,7 +47,8 @@ namespace __gnu_cxx
void
__attribute__ ((__unused__))
__atomic_add(volatile _Atomic_word* __mem, int __val);
-} // namespace __gnu_cxx
+
+_GLIBCXX_END_NAMESPACE
/* Even if the CPU doesn't need a memory barrier, we need to ensure that
the compiler doesn't reorder memory accesses across the barriers. */
diff --git a/libstdc++-v3/include/bits/basic_ios.h b/libstdc++-v3/include/bits/basic_ios.h
index 90886712bc5..d078431b9fd 100644
--- a/libstdc++-v3/include/bits/basic_ios.h
+++ b/libstdc++-v3/include/bits/basic_ios.h
@@ -1,6 +1,6 @@
// Iostreams base classes -*- C++ -*-
-// Copyright (C) 1997, 1998, 1999, 2001, 2002, 2003, 2004
+// Copyright (C) 1997, 1998, 1999, 2001, 2002, 2003, 2004, 2005
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -43,8 +43,8 @@
#include
#include
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
// 27.4.5 Template class basic_ios
/**
* @brief Virtual base class for all stream classes.
@@ -458,7 +458,8 @@ namespace std
void
_M_cache_locale(const locale& __loc);
};
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
#ifndef _GLIBCXX_EXPORT_TEMPLATE
#include
diff --git a/libstdc++-v3/include/bits/basic_ios.tcc b/libstdc++-v3/include/bits/basic_ios.tcc
index b536a0daeba..e8434a5bdf0 100644
--- a/libstdc++-v3/include/bits/basic_ios.tcc
+++ b/libstdc++-v3/include/bits/basic_ios.tcc
@@ -1,6 +1,7 @@
// basic_ios member functions -*- C++ -*-
-// Copyright (C) 1999, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+// Copyright (C) 1999, 2001, 2002, 2003, 2004, 2005
+// 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
@@ -37,8 +38,8 @@
#pragma GCC system_header
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
template
void
basic_ios<_CharT, _Traits>::clear(iostate __state)
@@ -195,6 +196,7 @@ namespace std
extern template class basic_ios;
#endif
#endif
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
#endif
diff --git a/libstdc++-v3/include/bits/basic_string.h b/libstdc++-v3/include/bits/basic_string.h
index 0ff2e54e8d3..acd2f144e81 100644
--- a/libstdc++-v3/include/bits/basic_string.h
+++ b/libstdc++-v3/include/bits/basic_string.h
@@ -45,8 +45,8 @@
#include
#include
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
/**
* @class basic_string basic_string.h
* @brief Managing sequences of characters and character-like objects.
@@ -2443,6 +2443,7 @@ namespace std
getline(basic_istream& __in, basic_string& __str,
wchar_t __delim);
#endif
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
#endif /* _BASIC_STRING_H */
diff --git a/libstdc++-v3/include/bits/basic_string.tcc b/libstdc++-v3/include/bits/basic_string.tcc
index f8f9f3ef2f4..6b21d830742 100644
--- a/libstdc++-v3/include/bits/basic_string.tcc
+++ b/libstdc++-v3/include/bits/basic_string.tcc
@@ -45,8 +45,8 @@
#pragma GCC system_header
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
template
inline bool
__is_null_pointer(_Type* __ptr)
@@ -993,6 +993,7 @@ namespace std
getline(basic_istream&, wstring&);
#endif
#endif
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
#endif
diff --git a/libstdc++-v3/include/bits/boost_concept_check.h b/libstdc++-v3/include/bits/boost_concept_check.h
index 24160ed4e9e..38380b7ee23 100644
--- a/libstdc++-v3/include/bits/boost_concept_check.h
+++ b/libstdc++-v3/include/bits/boost_concept_check.h
@@ -1,4 +1,6 @@
-// Copyright (C) 2004 Free Software Foundation, Inc.
+// -*- C++ -*-
+
+// Copyright (C) 2004, 2005 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
@@ -48,8 +50,7 @@
#include // for traits and tags
#include // for pair<>
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
#define _IsUnused __attribute__ ((__unused__))
@@ -923,7 +924,7 @@ struct _Aux_require_same<_Tp,_Tp> { typedef _Tp _Type; };
// HashedAssociativeContainer
-} // namespace __gnu_cxx
+_GLIBCXX_END_NAMESPACE
#undef _IsUnused
diff --git a/libstdc++-v3/include/bits/c++config b/libstdc++-v3/include/bits/c++config
index eb8dc798f0b..31a60a7e7b2 100644
--- a/libstdc++-v3/include/bits/c++config
+++ b/libstdc++-v3/include/bits/c++config
@@ -37,33 +37,98 @@
// Pick up any CPU-specific definitions.
#include
-// Debug mode support. Debug mode basic_string is not allowed to be
-// associated with std, because of locale and exception link
-// dependence.
-namespace __gnu_debug_def { }
-
-namespace __gnu_debug
-{
- using namespace __gnu_debug_def;
-}
+// The current version of the C++ library in compressed ISO date format.
+#define __GLIBCXX__
+// Macros for various namespace association schemes and modes.
#ifdef _GLIBCXX_DEBUG
-# define _GLIBCXX_STD __gnu_norm
-# define _GLIBCXX_EXTERN_TEMPLATE 0
-namespace __gnu_norm
-{
- using namespace std;
-}
+# define _GLIBCXX_NAMESPACE_ASSOCIATION_DEBUG 1
+#endif
+
+#define _GLIBCXX_NAMESPACE_ASSOCIATION_VERSION
+
+// Macros for namespaces.
+// _GLIBCXX_BEGIN_NAMESPACE
+// _GLIBCXX_END_NAMESPACE
+// _GLIBCXX_BEGIN_NESTED_NAMESPACE
+// _GLIBCXX_END_NESTED_NAMESPACE
+#if _GLIBCXX_NAMESPACE_ASSOCIATION_VERSION
+# define _GLIBCXX_BEGIN_NESTED_NAMESPACE(X, Y) namespace X { namespace Y {
+# define _GLIBCXX_END_NESTED_NAMESPACE } }
+# define _GLIBCXX_BEGIN_NAMESPACE(X) _GLIBCXX_BEGIN_NESTED_NAMESPACE(X, _6)
+# define _GLIBCXX_END_NAMESPACE _GLIBCXX_END_NESTED_NAMESPACE
+#else
+# define _GLIBCXX_BEGIN_NAMESPACE(X) namespace X {
+# define _GLIBCXX_END_NAMESPACE }
+# if _GLIBCXX_NAMESPACE_ASSOCIATION_DEBUG
+# define _GLIBCXX_BEGIN_NESTED_NAMESPACE(X, Y) namespace X { namespace Y {
+# define _GLIBCXX_END_NESTED_NAMESPACE } }
+# else
+# define _GLIBCXX_BEGIN_NESTED_NAMESPACE(X, Y) _GLIBCXX_BEGIN_NAMESPACE(X)
+# define _GLIBCXX_END_NESTED_NAMESPACE _GLIBCXX_END_NAMESPACE
+# endif
+#endif
+
+// Namespace associations for versioning mode.
+#if _GLIBCXX_NAMESPACE_ASSOCIATION_VERSION
namespace std
{
- using namespace __gnu_debug_def __attribute__ ((strong));
+ namespace _6 { }
+ using namespace _6 __attribute__ ((strong));
}
+
+// In addition, other supported namespace configurations.
+namespace __gnu_cxx
+{
+ namespace _6 { }
+ using namespace _6 __attribute__ ((strong));
+}
+
+namespace __gnu_ext
+{
+ namespace _6 { }
+ using namespace _6 __attribute__ ((strong));
+}
+
+namespace std
+{
+ namespace tr1
+ {
+ namespace _6 { }
+ using namespace _6 __attribute__ ((strong));
+ }
+}
+#endif
+
+// Namespace associations for debug mode.
+#if _GLIBCXX_NAMESPACE_ASSOCIATION_DEBUG
+namespace std
+{
+ namespace __gnu_norm { }
+
+#if 1
+ namespace __gnu_debug_def { }
+ namespace __gnu_debug { using namespace __gnu_debug_def; }
+ using namespace __gnu_debug_def __attribute__ ((strong));
+#else
+ namespace __gnu_debug { namespace detail { } }
+ using namespace __gnu_debug __attribute__ ((strong));
+#endif
+}
+
+# define _GLIBCXX_STD __gnu_norm
+# define _GLIBCXX_EXTERN_TEMPLATE 0
# if __NO_INLINE__ && !__GXX_WEAK__
# warning debug mode without inlining may fail due to lack of weak symbols
# endif
#else
+#if _GLIBCXX_NAMESPACE_ASSOCIATION_VERSION
+# define _GLIBCXX_STD _6
+#else
# define _GLIBCXX_STD std
#endif
+#endif
+
// Allow use of "export template." This is currently not a feature
// that g++ supports.
@@ -79,6 +144,7 @@ namespace std
# define _GLIBCXX_EXTERN_TEMPLATE 1
#endif
+
// Certain function definitions that are meant to be overridable from
// user code are decorated with this macro. For some targets, this
// macro causes these definitions to be weak.
diff --git a/libstdc++-v3/include/bits/char_traits.h b/libstdc++-v3/include/bits/char_traits.h
index 6b4c916b775..410e01b238d 100644
--- a/libstdc++-v3/include/bits/char_traits.h
+++ b/libstdc++-v3/include/bits/char_traits.h
@@ -46,8 +46,8 @@
#include // For copy, lexicographical_compare, fill_n
#include // For streampos
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
/**
* @brief Mapping from character type to associated types.
*
@@ -204,10 +204,11 @@ namespace __gnu_cxx
std::fill_n(__s, __n, __a);
return __s;
}
-}
-namespace std
-{
+_GLIBCXX_END_NAMESPACE
+
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
// 21.1
/**
* @brief Basis for explicit traits specializations.
@@ -361,6 +362,6 @@ namespace std
};
#endif //_GLIBCXX_USE_WCHAR_T
-} // namespace std
+_GLIBCXX_END_NAMESPACE
#endif
diff --git a/libstdc++-v3/include/bits/concurrence.h b/libstdc++-v3/include/bits/concurrence.h
index 5f1b682cbd4..81bf2a6215a 100644
--- a/libstdc++-v3/include/bits/concurrence.h
+++ b/libstdc++-v3/include/bits/concurrence.h
@@ -1,6 +1,6 @@
// Support for concurrent programing -*- C++ -*-
-// Copyright (C) 2003, 2004
+// Copyright (C) 2003, 2004, 2005
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -72,8 +72,8 @@ __gthread_mutex_lock(&NAME)
#endif
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
typedef __glibcxx_mutex_type mutex_type;
/// @brief Scoped lock idiom.
@@ -95,6 +95,7 @@ namespace __gnu_cxx
lock(const lock&);
lock& operator=(const lock&);
};
-}
+
+_GLIBCXX_END_NAMESPACE
#endif
diff --git a/libstdc++-v3/include/bits/cpp_type_traits.h b/libstdc++-v3/include/bits/cpp_type_traits.h
index 5ac9c98e704..e75bf47f08b 100644
--- a/libstdc++-v3/include/bits/cpp_type_traits.h
+++ b/libstdc++-v3/include/bits/cpp_type_traits.h
@@ -84,17 +84,18 @@ namespace __gnu_internal
} // namespace __gnu_internal
// Forward declaration hack, should really include this from somewhere.
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
template
class __normal_iterator;
-} // namespace __gnu_cxx
+
+_GLIBCXX_END_NAMESPACE
struct __true_type { };
struct __false_type { };
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
template
struct __truth_type
{ typedef __false_type __type; };
@@ -384,6 +385,6 @@ namespace std
};
};
-} // namespace std
+_GLIBCXX_END_NAMESPACE
#endif //_CPP_TYPE_TRAITS_H
diff --git a/libstdc++-v3/include/bits/deque.tcc b/libstdc++-v3/include/bits/deque.tcc
index d8f5ef6f0d2..2f455930de0 100644
--- a/libstdc++-v3/include/bits/deque.tcc
+++ b/libstdc++-v3/include/bits/deque.tcc
@@ -61,8 +61,8 @@
#ifndef _DEQUE_TCC
#define _DEQUE_TCC 1
-namespace _GLIBCXX_STD
-{
+_GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD)
+
template
deque<_Tp, _Alloc>&
deque<_Tp, _Alloc>::
@@ -744,6 +744,7 @@ namespace _GLIBCXX_STD
this->_M_impl._M_start._M_set_node(__new_nstart);
this->_M_impl._M_finish._M_set_node(__new_nstart + __old_num_nodes - 1);
}
-} // namespace std
+
+_GLIBCXX_END_NESTED_NAMESPACE
#endif
diff --git a/libstdc++-v3/include/bits/fstream.tcc b/libstdc++-v3/include/bits/fstream.tcc
index 652c54d8786..08fcdbe5ec9 100644
--- a/libstdc++-v3/include/bits/fstream.tcc
+++ b/libstdc++-v3/include/bits/fstream.tcc
@@ -42,8 +42,8 @@
#pragma GCC system_header
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
template
void
basic_filebuf<_CharT, _Traits>::
@@ -899,6 +899,7 @@ namespace std
extern template class basic_fstream;
#endif
#endif
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
#endif
diff --git a/libstdc++-v3/include/bits/functexcept.h b/libstdc++-v3/include/bits/functexcept.h
index 3e2ce2c5581..59358c4060e 100644
--- a/libstdc++-v3/include/bits/functexcept.h
+++ b/libstdc++-v3/include/bits/functexcept.h
@@ -38,10 +38,11 @@
#ifndef _FUNCTEXCEPT_H
#define _FUNCTEXCEPT_H 1
+#include
#include
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
// Helper for exception objects in
void
__throw_bad_exception(void) __attribute__((__noreturn__));
@@ -88,6 +89,7 @@ namespace std
// Helpers for exception objects in basic_ios
void
__throw_ios_failure(const char*) __attribute__((__noreturn__));
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
#endif
diff --git a/libstdc++-v3/include/bits/gslice.h b/libstdc++-v3/include/bits/gslice.h
index 31cb1029fdc..560aeb5e8c9 100644
--- a/libstdc++-v3/include/bits/gslice.h
+++ b/libstdc++-v3/include/bits/gslice.h
@@ -1,6 +1,6 @@
// The template and inlines for the -*- C++ -*- gslice class.
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2004
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2004, 2005
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -40,8 +40,8 @@
#pragma GCC system_header
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
/**
* @brief Class defining multi-dimensional subset of an array.
*
@@ -165,10 +165,6 @@ namespace std
return *this;
}
-} // std::
+_GLIBCXX_END_NAMESPACE
#endif /* _GSLICE_H */
-
-// Local Variables:
-// mode:c++
-// End:
diff --git a/libstdc++-v3/include/bits/gslice_array.h b/libstdc++-v3/include/bits/gslice_array.h
index 2904efec7fb..0b12207d039 100644
--- a/libstdc++-v3/include/bits/gslice_array.h
+++ b/libstdc++-v3/include/bits/gslice_array.h
@@ -1,6 +1,6 @@
// The template and inlines for the -*- C++ -*- gslice_array class.
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2004
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2004, 2005
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -40,8 +40,8 @@
#pragma GCC system_header
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
/**
* @brief Reference to multi-dimensional subset of an array.
*
@@ -209,10 +209,6 @@ _DEFINE_VALARRAY_OPERATOR(>>, __shift_right)
#undef _DEFINE_VALARRAY_OPERATOR
-} // std::
+_GLIBCXX_END_NAMESPACE
#endif /* _GSLICE_ARRAY_H */
-
-// Local Variables:
-// mode:c++
-// End:
diff --git a/libstdc++-v3/include/bits/indirect_array.h b/libstdc++-v3/include/bits/indirect_array.h
index aca2fe38ea9..c6038e3511e 100644
--- a/libstdc++-v3/include/bits/indirect_array.h
+++ b/libstdc++-v3/include/bits/indirect_array.h
@@ -1,6 +1,6 @@
// The template and inlines for the -*- C++ -*- indirect_array class.
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2004
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2004, 2005
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -40,8 +40,8 @@
#pragma GCC system_header
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
/**
* @brief Reference to arbitrary subset of an array.
*
@@ -203,10 +203,6 @@ _DEFINE_VALARRAY_OPERATOR(>>, __shift_right)
#undef _DEFINE_VALARRAY_OPERATOR
-} // std::
+_GLIBCXX_END_NAMESPACE
#endif /* _INDIRECT_ARRAY_H */
-
-// Local Variables:
-// mode:c++
-// End:
diff --git a/libstdc++-v3/include/bits/ios_base.h b/libstdc++-v3/include/bits/ios_base.h
index 644c6555075..cc88f40f861 100644
--- a/libstdc++-v3/include/bits/ios_base.h
+++ b/libstdc++-v3/include/bits/ios_base.h
@@ -1,6 +1,6 @@
// Iostreams base classes -*- C++ -*-
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -46,8 +46,8 @@
#include
#include
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
// The following definitions of bitmask types are enums, not ints,
// as permitted (but not required) in the standard, in order to provide
// better type safety in iostream calls. A side effect is that
@@ -961,7 +961,8 @@ namespace std
__base.setf(ios_base::scientific, ios_base::floatfield);
return __base;
}
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
#endif /* _IOS_BASE_H */
diff --git a/libstdc++-v3/include/bits/istream.tcc b/libstdc++-v3/include/bits/istream.tcc
index 21299e60b62..541e75afb80 100644
--- a/libstdc++-v3/include/bits/istream.tcc
+++ b/libstdc++-v3/include/bits/istream.tcc
@@ -45,8 +45,8 @@
#include
#include // For flush()
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
template
basic_istream<_CharT, _Traits>::sentry::
sentry(basic_istream<_CharT, _Traits>& __in, bool __noskip) : _M_ok(false)
@@ -1281,6 +1281,7 @@ namespace std
extern template class basic_iostream;
#endif
#endif
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
#endif
diff --git a/libstdc++-v3/include/bits/list.tcc b/libstdc++-v3/include/bits/list.tcc
index ece04300f31..355ec75ba95 100644
--- a/libstdc++-v3/include/bits/list.tcc
+++ b/libstdc++-v3/include/bits/list.tcc
@@ -61,8 +61,8 @@
#ifndef _LIST_TCC
#define _LIST_TCC 1
-namespace _GLIBCXX_STD
-{
+_GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD)
+
template
void
_List_base<_Tp, _Alloc>::
@@ -373,7 +373,8 @@ namespace _GLIBCXX_STD
swap(*(__fill - 1));
}
}
-} // namespace std
+
+_GLIBCXX_END_NESTED_NAMESPACE
#endif /* _LIST_TCC */
diff --git a/libstdc++-v3/include/bits/locale_classes.h b/libstdc++-v3/include/bits/locale_classes.h
index aed938d0c10..3abe4150465 100644
--- a/libstdc++-v3/include/bits/locale_classes.h
+++ b/libstdc++-v3/include/bits/locale_classes.h
@@ -1,6 +1,6 @@
// Locale support -*- C++ -*-
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -48,8 +48,8 @@
#include
#include
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
// 22.1.1 Class locale
/**
* @brief Container class for localization functionality.
@@ -577,6 +577,7 @@ namespace std
delete [] _M_impl->_M_names[0];
_M_impl->_M_names[0] = 0; // Unnamed.
}
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
#endif
diff --git a/libstdc++-v3/include/bits/locale_facets.h b/libstdc++-v3/include/bits/locale_facets.h
index b4cd513b93e..339bb5339b2 100644
--- a/libstdc++-v3/include/bits/locale_facets.h
+++ b/libstdc++-v3/include/bits/locale_facets.h
@@ -48,8 +48,8 @@
#include // For ios_base, ios_base::iostate
#include
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
// NB: Don't instantiate required wchar_t facets if no wchar_t support.
#ifdef _GLIBCXX_USE_WCHAR_T
# define _GLIBCXX_NUM_FACETS 28
@@ -4573,6 +4573,7 @@ namespace std
inline _CharT
tolower(_CharT __c, const locale& __loc)
{ return use_facet >(__loc).tolower(__c); }
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
#endif
diff --git a/libstdc++-v3/include/bits/locale_facets.tcc b/libstdc++-v3/include/bits/locale_facets.tcc
index eb4a3527c5c..9d337e9defa 100644
--- a/libstdc++-v3/include/bits/locale_facets.tcc
+++ b/libstdc++-v3/include/bits/locale_facets.tcc
@@ -42,8 +42,8 @@
#include // For bad_cast.
#include
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
template
locale
locale::combine(const locale& __other) const
@@ -2761,6 +2761,7 @@ namespace std
has_facet >(const locale&);
#endif
#endif
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
#endif
diff --git a/libstdc++-v3/include/bits/localefwd.h b/libstdc++-v3/include/bits/localefwd.h
index 258fcc13ae2..94cafb2e387 100644
--- a/libstdc++-v3/include/bits/localefwd.h
+++ b/libstdc++-v3/include/bits/localefwd.h
@@ -1,6 +1,6 @@
// Locale support -*- C++ -*-
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2005
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -47,8 +47,8 @@
#include // For ostreambuf_iterator, istreambuf_iterator
#include
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
// 22.1.1 Locale
class locale;
@@ -187,6 +187,7 @@ namespace std
__throw_bad_cast();
return *__f;
}
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
#endif
diff --git a/libstdc++-v3/include/bits/mask_array.h b/libstdc++-v3/include/bits/mask_array.h
index 592aad7dcf5..f2c6661268b 100644
--- a/libstdc++-v3/include/bits/mask_array.h
+++ b/libstdc++-v3/include/bits/mask_array.h
@@ -1,6 +1,6 @@
// The template and inlines for the -*- C++ -*- mask_array class.
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2004
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2004, 2005
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -40,8 +40,8 @@
#pragma GCC system_header
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
/**
* @brief Reference to selected subset of an array.
*
@@ -199,10 +199,6 @@ _DEFINE_VALARRAY_OPERATOR(>>, __shift_right)
#undef _DEFINE_VALARRAY_OPERATOR
-} // std::
+_GLIBCXX_END_NAMESPACE
#endif /* _MASK_ARRAY_H */
-
-// Local Variables:
-// mode:c++
-// End:
diff --git a/libstdc++-v3/include/bits/ostream.tcc b/libstdc++-v3/include/bits/ostream.tcc
index e26ad50d6b8..1642583845f 100644
--- a/libstdc++-v3/include/bits/ostream.tcc
+++ b/libstdc++-v3/include/bits/ostream.tcc
@@ -44,8 +44,8 @@
#include
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
template
basic_ostream<_CharT, _Traits>::sentry::
sentry(basic_ostream<_CharT, _Traits>& __os)
@@ -818,6 +818,7 @@ namespace std
extern template wostream& operator<<(wostream&, const char*);
#endif
#endif
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
#endif
diff --git a/libstdc++-v3/include/bits/postypes.h b/libstdc++-v3/include/bits/postypes.h
index 6df0ef93412..97ab8d1e089 100644
--- a/libstdc++-v3/include/bits/postypes.h
+++ b/libstdc++-v3/include/bits/postypes.h
@@ -1,6 +1,6 @@
// Position types -*- C++ -*-
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2003, 2004
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -49,8 +49,8 @@
#include // For int64_t
#endif
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
// The types streamoff, streampos and wstreampos and the class
// template fpos<> are described in clauses 21.1.2, 21.1.3, 27.1.2,
// 27.2, 27.4.1, 27.4.3 and D.6. Despite all this verbage, the
@@ -210,6 +210,7 @@ namespace std
typedef fpos streampos;
/// File position for wchar_t streams.
typedef fpos wstreampos;
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
#endif
diff --git a/libstdc++-v3/include/bits/slice_array.h b/libstdc++-v3/include/bits/slice_array.h
index bde07d5e7e0..41debfe5539 100644
--- a/libstdc++-v3/include/bits/slice_array.h
+++ b/libstdc++-v3/include/bits/slice_array.h
@@ -1,6 +1,6 @@
// The template and inlines for the -*- C++ -*- slice_array class.
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2004
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2004, 2005
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -40,8 +40,8 @@
#pragma GCC system_header
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
/**
* @brief Class defining one-dimensional subset of an array.
*
@@ -264,10 +264,6 @@ _DEFINE_VALARRAY_OPERATOR(>>, __shift_right)
#undef _DEFINE_VALARRAY_OPERATOR
-} // std::
+_GLIBCXX_END_NAMESPACE
#endif /* _SLICE_ARRAY_H */
-
-// Local Variables:
-// mode:c++
-// End:
diff --git a/libstdc++-v3/include/bits/sstream.tcc b/libstdc++-v3/include/bits/sstream.tcc
index 28fb1959e9a..eb12ca45891 100644
--- a/libstdc++-v3/include/bits/sstream.tcc
+++ b/libstdc++-v3/include/bits/sstream.tcc
@@ -1,6 +1,6 @@
// String based streams -*- C++ -*-
-// Copyright (C) 1997, 1998, 1999, 2001, 2002, 2003, 2004
+// Copyright (C) 1997, 1998, 1999, 2001, 2002, 2003, 2004, 2005
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -44,8 +44,8 @@
#include
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
template
typename basic_stringbuf<_CharT, _Traits, _Alloc>::int_type
basic_stringbuf<_CharT, _Traits, _Alloc>::
@@ -233,6 +233,7 @@ namespace std
extern template class basic_stringstream;
#endif
#endif
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
#endif
diff --git a/libstdc++-v3/include/bits/stl_algo.h b/libstdc++-v3/include/bits/stl_algo.h
index 6cb9c0b7d7a..355d859a901 100644
--- a/libstdc++-v3/include/bits/stl_algo.h
+++ b/libstdc++-v3/include/bits/stl_algo.h
@@ -67,8 +67,8 @@
// See concept_check.h for the __glibcxx_*_requires macros.
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
/**
* @brief Find the median of three values.
* @param a A value.
@@ -5337,6 +5337,6 @@ namespace std
__comp);
}
-} // namespace std
+_GLIBCXX_END_NAMESPACE
#endif /* _ALGO_H */
diff --git a/libstdc++-v3/include/bits/stl_algobase.h b/libstdc++-v3/include/bits/stl_algobase.h
index c3398327346..730699648e1 100644
--- a/libstdc++-v3/include/bits/stl_algobase.h
+++ b/libstdc++-v3/include/bits/stl_algobase.h
@@ -75,8 +75,7 @@
#include
#include
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
/**
* @brief Swaps two values.
@@ -909,6 +908,6 @@ namespace std
#endif /* CHAR_MAX == SCHAR_MAX */
}
-} // namespace std
+_GLIBCXX_END_NAMESPACE
#endif
diff --git a/libstdc++-v3/include/bits/stl_bvector.h b/libstdc++-v3/include/bits/stl_bvector.h
index 05c7e09adfb..0779ea692d6 100644
--- a/libstdc++-v3/include/bits/stl_bvector.h
+++ b/libstdc++-v3/include/bits/stl_bvector.h
@@ -61,8 +61,8 @@
#ifndef _BVECTOR_H
#define _BVECTOR_H 1
-namespace _GLIBCXX_STD
-{
+_GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD)
+
typedef unsigned long _Bit_type;
enum { _S_word_bit = int(CHAR_BIT * sizeof(_Bit_type)) };
@@ -397,13 +397,14 @@ namespace _GLIBCXX_STD
_M_impl._M_end_of_storage - _M_impl._M_start._M_p);
}
};
-} // namespace std
+
+_GLIBCXX_END_NESTED_NAMESPACE
// Declare a partial specialization of vector.
#include
-namespace _GLIBCXX_STD
-{
+_GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD)
+
/**
* @brief A specialization of vector for booleans which offers fixed time
* access to individual elements in any order.
@@ -953,6 +954,7 @@ template
clear()
{ erase(begin(), end()); }
};
-} // namespace std
+
+_GLIBCXX_END_NESTED_NAMESPACE
#endif
diff --git a/libstdc++-v3/include/bits/stl_construct.h b/libstdc++-v3/include/bits/stl_construct.h
index 8f78d8c30b9..0a03fb72d3f 100644
--- a/libstdc++-v3/include/bits/stl_construct.h
+++ b/libstdc++-v3/include/bits/stl_construct.h
@@ -64,8 +64,8 @@
#include
#include
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
/**
* @if maint
* Constructs an object in existing memory by invoking an allocated
@@ -181,9 +181,8 @@ namespace std
{
_Destroy(__first, __last);
}
-
-} // namespace std
+_GLIBCXX_END_NAMESPACE
#endif /* _STL_CONSTRUCT_H */
diff --git a/libstdc++-v3/include/bits/stl_deque.h b/libstdc++-v3/include/bits/stl_deque.h
index 15401ba6865..107bbfe69a1 100644
--- a/libstdc++-v3/include/bits/stl_deque.h
+++ b/libstdc++-v3/include/bits/stl_deque.h
@@ -65,8 +65,8 @@
#include
#include
-namespace _GLIBCXX_STD
-{
+_GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD)
+
/**
* @if maint
* @brief This function controls the size of memory nodes.
@@ -1580,6 +1580,7 @@ namespace _GLIBCXX_STD
inline void
swap(deque<_Tp,_Alloc>& __x, deque<_Tp,_Alloc>& __y)
{ __x.swap(__y); }
-} // namespace std
+
+_GLIBCXX_END_NESTED_NAMESPACE
#endif /* _DEQUE_H */
diff --git a/libstdc++-v3/include/bits/stl_function.h b/libstdc++-v3/include/bits/stl_function.h
index dac19c8e525..db213dc0a92 100644
--- a/libstdc++-v3/include/bits/stl_function.h
+++ b/libstdc++-v3/include/bits/stl_function.h
@@ -61,8 +61,8 @@
#ifndef _FUNCTION_H
#define _FUNCTION_H 1
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
// 20.3.1 base classes
/** @defgroup s20_3_1_base Functor Base Classes
* Function objects, or @e functors, are objects with an @c operator()
@@ -750,10 +750,6 @@ namespace std
/** @} */
-} // namespace std
+_GLIBCXX_END_NAMESPACE
#endif /* _FUNCTION_H */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/libstdc++-v3/include/bits/stl_heap.h b/libstdc++-v3/include/bits/stl_heap.h
index 3dd0001e7f1..f9e337f31be 100644
--- a/libstdc++-v3/include/bits/stl_heap.h
+++ b/libstdc++-v3/include/bits/stl_heap.h
@@ -1,6 +1,6 @@
// Heap implementation -*- C++ -*-
-// Copyright (C) 2001, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2004, 2005 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
@@ -62,8 +62,8 @@
#include
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
// is_heap, a predicate testing whether or not a range is
// a heap. This function is an extension, not part of the C++
// standard.
@@ -458,10 +458,6 @@ namespace std
std::pop_heap(__first, __last--, __comp);
}
-} // namespace std
+_GLIBCXX_END_NAMESPACE
#endif /* _STL_HEAP_H */
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/libstdc++-v3/include/bits/stl_iterator.h b/libstdc++-v3/include/bits/stl_iterator.h
index 12b2e9c6f9a..7746aa2b950 100644
--- a/libstdc++-v3/include/bits/stl_iterator.h
+++ b/libstdc++-v3/include/bits/stl_iterator.h
@@ -67,8 +67,8 @@
#include
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
// 24.4.1 Reverse iterators
/**
* "Bidirectional and random access iterators have corresponding reverse
@@ -616,10 +616,11 @@ namespace std
return insert_iterator<_Container>(__x,
typename _Container::iterator(__i));
}
-} // namespace std
-namespace __gnu_cxx
-{
+_GLIBCXX_END_NAMESPACE
+
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
// This iterator adapter is 'normal' in the sense that it does not
// change the semantics of any of the operators of its iterator
// parameter. Its primary purpose is to convert an iterator that is
@@ -819,10 +820,7 @@ namespace __gnu_cxx
operator+(typename __normal_iterator<_Iterator, _Container>::difference_type
__n, const __normal_iterator<_Iterator, _Container>& __i)
{ return __normal_iterator<_Iterator, _Container>(__i.base() + __n); }
-} // namespace __gnu_cxx
+
+_GLIBCXX_END_NAMESPACE
#endif
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/libstdc++-v3/include/bits/stl_iterator_base_funcs.h b/libstdc++-v3/include/bits/stl_iterator_base_funcs.h
index 6e550fadf5b..82bf040afb2 100644
--- a/libstdc++-v3/include/bits/stl_iterator_base_funcs.h
+++ b/libstdc++-v3/include/bits/stl_iterator_base_funcs.h
@@ -1,6 +1,6 @@
// Functions used by iterators -*- C++ -*-
-// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2003, 2004, 2005 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
@@ -67,8 +67,8 @@
#pragma GCC system_header
#include
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
template
inline typename iterator_traits<_InputIterator>::difference_type
__distance(_InputIterator __first, _InputIterator __last,
@@ -174,6 +174,7 @@ namespace std
// concept requirements -- taken care of in __advance
std::__advance(__i, __n, std::__iterator_category(__i));
}
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
#endif /* _ITERATOR_BASE_FUNCS_H */
diff --git a/libstdc++-v3/include/bits/stl_iterator_base_types.h b/libstdc++-v3/include/bits/stl_iterator_base_types.h
index 2161f2a8136..c02cd261d8d 100644
--- a/libstdc++-v3/include/bits/stl_iterator_base_types.h
+++ b/libstdc++-v3/include/bits/stl_iterator_base_types.h
@@ -1,6 +1,6 @@
// Types used in iterator implementation -*- C++ -*-
-// Copyright (C) 2001, 2002, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2004, 2005 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
@@ -66,8 +66,8 @@
#pragma GCC system_header
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
//@{
/**
* @defgroup iterator_tags Iterator Tags
@@ -164,7 +164,7 @@ namespace std
__iterator_category(const _Iter&)
{ return typename iterator_traits<_Iter>::iterator_category(); }
-} // namespace std
+_GLIBCXX_END_NAMESPACE
#endif /* _ITERATOR_BASE_TYPES_H */
diff --git a/libstdc++-v3/include/bits/stl_list.h b/libstdc++-v3/include/bits/stl_list.h
index f93a03224cc..03b70a39fb0 100644
--- a/libstdc++-v3/include/bits/stl_list.h
+++ b/libstdc++-v3/include/bits/stl_list.h
@@ -63,8 +63,8 @@
#include
-namespace _GLIBCXX_STD
-{
+_GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD)
+
// Supporting structures are split into common and templated types; the
// latter publicly inherits from the former in an effort to reduce code
// duplication. This results in some "needless" static_cast'ing later on,
@@ -1221,7 +1221,8 @@ namespace _GLIBCXX_STD
inline void
swap(list<_Tp, _Alloc>& __x, list<_Tp, _Alloc>& __y)
{ __x.swap(__y); }
-} // namespace std
+
+_GLIBCXX_END_NESTED_NAMESPACE
#endif /* _LIST_H */
diff --git a/libstdc++-v3/include/bits/stl_map.h b/libstdc++-v3/include/bits/stl_map.h
index 4d4dd7edf6d..a1cfafb850a 100644
--- a/libstdc++-v3/include/bits/stl_map.h
+++ b/libstdc++-v3/include/bits/stl_map.h
@@ -64,8 +64,8 @@
#include
#include
-namespace _GLIBCXX_STD
-{
+_GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD)
+
/**
* @brief A standard container made up of (key,value) pairs, which can be
* retrieved based on a key, in logarithmic time.
@@ -726,6 +726,7 @@ namespace _GLIBCXX_STD
swap(map<_Key, _Tp, _Compare, _Alloc>& __x,
map<_Key, _Tp, _Compare, _Alloc>& __y)
{ __x.swap(__y); }
-} // namespace std
+
+_GLIBCXX_END_NESTED_NAMESPACE
#endif /* _MAP_H */
diff --git a/libstdc++-v3/include/bits/stl_multimap.h b/libstdc++-v3/include/bits/stl_multimap.h
index 5c662275130..4adf65ba836 100644
--- a/libstdc++-v3/include/bits/stl_multimap.h
+++ b/libstdc++-v3/include/bits/stl_multimap.h
@@ -63,8 +63,8 @@
#include
-namespace _GLIBCXX_STD
-{
+_GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD)
+
// Forward declaration of operators < and ==, needed for friend declaration.
template & __x,
multimap<_Key, _Tp, _Compare, _Alloc>& __y)
{ __x.swap(__y); }
-} // namespace std
+
+_GLIBCXX_END_NESTED_NAMESPACE
#endif /* _MULTIMAP_H */
diff --git a/libstdc++-v3/include/bits/stl_multiset.h b/libstdc++-v3/include/bits/stl_multiset.h
index 185f51ce989..f685b4f6e63 100644
--- a/libstdc++-v3/include/bits/stl_multiset.h
+++ b/libstdc++-v3/include/bits/stl_multiset.h
@@ -63,8 +63,7 @@
#include
-namespace _GLIBCXX_STD
-{
+_GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD)
// Forward declaration of operators < and ==, needed for friend declaration.
template ,
@@ -575,6 +574,6 @@ namespace _GLIBCXX_STD
multiset<_Key, _Compare, _Alloc>& __y)
{ __x.swap(__y); }
-} // namespace std
+_GLIBCXX_END_NESTED_NAMESPACE
#endif /* _MULTISET_H */
diff --git a/libstdc++-v3/include/bits/stl_numeric.h b/libstdc++-v3/include/bits/stl_numeric.h
index 79706806d50..82bee216d10 100644
--- a/libstdc++-v3/include/bits/stl_numeric.h
+++ b/libstdc++-v3/include/bits/stl_numeric.h
@@ -1,6 +1,6 @@
// Numeric functions implementation -*- C++ -*-
-// Copyright (C) 2001, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2004, 2005 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
@@ -63,8 +63,7 @@
#include
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
/**
* @brief Accumulate values in a range.
@@ -335,6 +334,6 @@ namespace std
return ++__result;
}
-} // namespace std
+_GLIBCXX_END_NAMESPACE
#endif /* _STL_NUMERIC_H */
diff --git a/libstdc++-v3/include/bits/stl_pair.h b/libstdc++-v3/include/bits/stl_pair.h
index b97de332729..b4bb00c26e1 100644
--- a/libstdc++-v3/include/bits/stl_pair.h
+++ b/libstdc++-v3/include/bits/stl_pair.h
@@ -1,6 +1,6 @@
// Pair implementation -*- C++ -*-
-// Copyright (C) 2001, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2004, 2005 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
@@ -61,8 +61,8 @@
#ifndef _PAIR_H
#define _PAIR_H 1
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
/// pair holds two objects of arbitrary type.
template
struct pair
@@ -143,6 +143,7 @@ namespace std
inline pair<_T1, _T2>
make_pair(_T1 __x, _T2 __y)
{ return pair<_T1, _T2>(__x, __y); }
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
#endif /* _PAIR_H */
diff --git a/libstdc++-v3/include/bits/stl_queue.h b/libstdc++-v3/include/bits/stl_queue.h
index b7d03b8ab2c..e0da22fb213 100644
--- a/libstdc++-v3/include/bits/stl_queue.h
+++ b/libstdc++-v3/include/bits/stl_queue.h
@@ -1,6 +1,7 @@
// Queue implementation -*- C++ -*-
-// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2003, 2004, 2005
+// 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
@@ -64,8 +65,8 @@
#include
#include
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
// Forward declarations of operators < and ==, needed for friend declaration.
template >
class queue;
@@ -465,6 +466,7 @@ namespace std
};
// No equality/comparison operators are provided for priority_queue.
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
#endif /* _QUEUE_H */
diff --git a/libstdc++-v3/include/bits/stl_raw_storage_iter.h b/libstdc++-v3/include/bits/stl_raw_storage_iter.h
index 40577655b98..615da28524e 100644
--- a/libstdc++-v3/include/bits/stl_raw_storage_iter.h
+++ b/libstdc++-v3/include/bits/stl_raw_storage_iter.h
@@ -1,6 +1,6 @@
// -*- C++ -*-
-// Copyright (C) 2001, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2004, 2005 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
@@ -61,8 +61,8 @@
#ifndef _STL_RAW_STORAGE_ITERATOR_H
#define _STL_RAW_STORAGE_ITERATOR_H 1
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
/**
* This iterator class lets algorithms store their results into
* uninitialized memory.
@@ -104,10 +104,7 @@ namespace std
return __tmp;
}
};
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
#endif
-
-// Local Variables:
-// mode:C++
-// End:
diff --git a/libstdc++-v3/include/bits/stl_relops.h b/libstdc++-v3/include/bits/stl_relops.h
index 1395472d038..11fc30dedd8 100644
--- a/libstdc++-v3/include/bits/stl_relops.h
+++ b/libstdc++-v3/include/bits/stl_relops.h
@@ -1,6 +1,6 @@
// std::rel_ops implementation -*- C++ -*-
-// Copyright (C) 2001, 2002, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2004, 2005 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
@@ -71,8 +71,8 @@
#ifndef _STL_RELOPS_H
#define _STL_RELOPS_H 1
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
namespace rel_ops
{
/** @namespace std::rel_ops
@@ -132,6 +132,7 @@ namespace std
{ return !(__x < __y); }
} // namespace rel_ops
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
#endif /* _STL_RELOPS_H */
diff --git a/libstdc++-v3/include/bits/stl_set.h b/libstdc++-v3/include/bits/stl_set.h
index 1172e509311..042e95fc20f 100644
--- a/libstdc++-v3/include/bits/stl_set.h
+++ b/libstdc++-v3/include/bits/stl_set.h
@@ -63,8 +63,8 @@
#include
-namespace _GLIBCXX_STD
-{
+_GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD)
+
// Forward declarations of operators < and ==, needed for friend declaration.
template,
class _Alloc = std::allocator<_Key> >
@@ -587,6 +587,6 @@ namespace _GLIBCXX_STD
swap(set<_Key, _Compare, _Alloc>& __x, set<_Key, _Compare, _Alloc>& __y)
{ __x.swap(__y); }
-} // namespace std
+_GLIBCXX_END_NESTED_NAMESPACE
#endif /* _SET_H */
diff --git a/libstdc++-v3/include/bits/stl_stack.h b/libstdc++-v3/include/bits/stl_stack.h
index c3a527543e4..22e56603893 100644
--- a/libstdc++-v3/include/bits/stl_stack.h
+++ b/libstdc++-v3/include/bits/stl_stack.h
@@ -1,6 +1,6 @@
// Stack implementation -*- C++ -*-
-// Copyright (C) 2001, 2002, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2004, 2005 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
@@ -64,8 +64,8 @@
#include
#include
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
// Forward declarations of operators == and <, needed for friend
// declaration.
template >
@@ -267,6 +267,7 @@ namespace std
inline bool
operator>=(const stack<_Tp, _Seq>& __x, const stack<_Tp, _Seq>& __y)
{ return !(__x < __y); }
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
#endif /* _STACK_H */
diff --git a/libstdc++-v3/include/bits/stl_tempbuf.h b/libstdc++-v3/include/bits/stl_tempbuf.h
index 7263099d7ec..970af452de7 100644
--- a/libstdc++-v3/include/bits/stl_tempbuf.h
+++ b/libstdc++-v3/include/bits/stl_tempbuf.h
@@ -63,8 +63,8 @@
#include
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
/**
* @if maint
* This class is used in two places: stl_algo.h and ext/memory,
@@ -164,7 +164,8 @@ namespace std
__throw_exception_again;
}
}
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
#endif /* _TEMPBUF_H */
diff --git a/libstdc++-v3/include/bits/stl_tree.h b/libstdc++-v3/include/bits/stl_tree.h
index 13088ca7555..ad0e68df9c1 100644
--- a/libstdc++-v3/include/bits/stl_tree.h
+++ b/libstdc++-v3/include/bits/stl_tree.h
@@ -69,8 +69,8 @@
#include
#include
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
// Red-black tree class, designed for use in implementing STL
// associative containers (set, multiset, map, and multimap). The
// insertion and deletion algorithms are based on those in Cormen,
@@ -1492,6 +1492,7 @@ namespace std
return false;
return true;
}
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
#endif
diff --git a/libstdc++-v3/include/bits/stl_uninitialized.h b/libstdc++-v3/include/bits/stl_uninitialized.h
index 6b06ad064d8..c5748fc284d 100644
--- a/libstdc++-v3/include/bits/stl_uninitialized.h
+++ b/libstdc++-v3/include/bits/stl_uninitialized.h
@@ -63,8 +63,8 @@
#include
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
// uninitialized_copy
template
inline _ForwardIterator
@@ -392,6 +392,6 @@ namespace std
}
}
-} // namespace std
+_GLIBCXX_END_NAMESPACE
#endif /* _STL_UNINITIALIZED_H */
diff --git a/libstdc++-v3/include/bits/stl_vector.h b/libstdc++-v3/include/bits/stl_vector.h
index 731806b0a94..c4107fa6e77 100644
--- a/libstdc++-v3/include/bits/stl_vector.h
+++ b/libstdc++-v3/include/bits/stl_vector.h
@@ -65,8 +65,8 @@
#include
#include
-namespace _GLIBCXX_STD
-{
+_GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD)
+
/**
* @if maint
* See bits/stl_deque.h's _Deque_base for an explanation.
@@ -985,6 +985,7 @@ namespace _GLIBCXX_STD
inline void
swap(vector<_Tp, _Alloc>& __x, vector<_Tp, _Alloc>& __y)
{ __x.swap(__y); }
-} // namespace std
+
+_GLIBCXX_END_NESTED_NAMESPACE
#endif /* _VECTOR_H */
diff --git a/libstdc++-v3/include/bits/stream_iterator.h b/libstdc++-v3/include/bits/stream_iterator.h
index c247868fa77..dabb9ce46a2 100644
--- a/libstdc++-v3/include/bits/stream_iterator.h
+++ b/libstdc++-v3/include/bits/stream_iterator.h
@@ -1,6 +1,6 @@
// Stream iterators
-// Copyright (C) 2001, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2004, 2005 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
@@ -39,8 +39,8 @@
#include
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
/// Provides input iterator semantics for streams.
template, typename _Dist = ptrdiff_t>
@@ -210,5 +210,7 @@ namespace std
operator++(int)
{ return *this; }
};
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
+
#endif
diff --git a/libstdc++-v3/include/bits/streambuf.tcc b/libstdc++-v3/include/bits/streambuf.tcc
index e6c54ed0889..b1a4876fded 100644
--- a/libstdc++-v3/include/bits/streambuf.tcc
+++ b/libstdc++-v3/include/bits/streambuf.tcc
@@ -42,8 +42,8 @@
#pragma GCC system_header
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
template
streamsize
basic_streambuf<_CharT, _Traits>::
@@ -149,6 +149,7 @@ namespace std
__copy_streambufs(basic_streambuf*, basic_streambuf*);
#endif
#endif
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
#endif
diff --git a/libstdc++-v3/include/bits/streambuf_iterator.h b/libstdc++-v3/include/bits/streambuf_iterator.h
index 0de592202eb..e3b5a3b4c3a 100644
--- a/libstdc++-v3/include/bits/streambuf_iterator.h
+++ b/libstdc++-v3/include/bits/streambuf_iterator.h
@@ -1,6 +1,6 @@
// Streambuf iterators
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -43,8 +43,8 @@
// NB: Should specialize copy, find algorithms for streambuf iterators.
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
// 24.5.3 Template class istreambuf_iterator
/// Provides input iterator semantics for streambufs.
template
@@ -254,5 +254,7 @@ namespace std
return *this;
}
};
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
+
#endif
diff --git a/libstdc++-v3/include/bits/stringfwd.h b/libstdc++-v3/include/bits/stringfwd.h
index 8bb59d96c00..8158e8572e6 100644
--- a/libstdc++-v3/include/bits/stringfwd.h
+++ b/libstdc++-v3/include/bits/stringfwd.h
@@ -1,6 +1,6 @@
// String support -*- C++ -*-
-// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2005 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
@@ -43,8 +43,8 @@
#include
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
template
class allocator;
@@ -64,6 +64,7 @@ namespace std
typedef basic_string wstring;
#endif
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
#endif // _STRINGFWD_H
diff --git a/libstdc++-v3/include/bits/valarray_after.h b/libstdc++-v3/include/bits/valarray_after.h
index 8d73d42f27c..62d9853c5a8 100644
--- a/libstdc++-v3/include/bits/valarray_after.h
+++ b/libstdc++-v3/include/bits/valarray_after.h
@@ -1,6 +1,6 @@
// The template and inlines for the -*- C++ -*- internal _Meta class.
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -40,8 +40,8 @@
#pragma GCC system_header
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
//
// gslice_array closure.
//
@@ -549,10 +549,6 @@ _DEFINE_EXPR_BINARY_FUNCTION(pow)
#undef _DEFINE_EXPR_BINARY_FUNCTION
-} // std::
+_GLIBCXX_END_NAMESPACE
#endif /* _CPP_VALARRAY_AFTER_H */
-
-// Local Variables:
-// mode:c++
-// End:
diff --git a/libstdc++-v3/include/bits/valarray_array.h b/libstdc++-v3/include/bits/valarray_array.h
index 940d886c4be..490384fdcc4 100644
--- a/libstdc++-v3/include/bits/valarray_array.h
+++ b/libstdc++-v3/include/bits/valarray_array.h
@@ -46,8 +46,8 @@
#include
#include
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
//
// Helper functions on raw pointers
//
@@ -682,7 +682,8 @@ namespace std
_DEFINE_ARRAY_FUNCTION(>>, __shift_right)
#undef _DEFINE_VALARRAY_FUNCTION
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
#ifndef _GLIBCXX_EXPORT_TEMPLATE
# include
diff --git a/libstdc++-v3/include/bits/valarray_array.tcc b/libstdc++-v3/include/bits/valarray_array.tcc
index b4be2c7d018..f00ffb4dc8b 100644
--- a/libstdc++-v3/include/bits/valarray_array.tcc
+++ b/libstdc++-v3/include/bits/valarray_array.tcc
@@ -1,6 +1,6 @@
// The template and inlines for the -*- C++ -*- internal _Array helper class.
-// Copyright (C) 1997, 1998, 1999, 2003 Free Software Foundation, Inc.
+// Copyright (C) 1997, 1998, 1999, 2003, 2005 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
@@ -37,8 +37,8 @@
#ifndef _VALARRAY_ARRAY_TCC
#define _VALARRAY_ARRAY_TCC 1
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
template
void
__valarray_fill(_Array<_Tp> __a, size_t __n, _Array __m,
@@ -240,6 +240,7 @@ namespace std
new (__q) _Tp(*__p);
}
}
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
#endif /* _VALARRAY_ARRAY_TCC */
diff --git a/libstdc++-v3/include/bits/valarray_before.h b/libstdc++-v3/include/bits/valarray_before.h
index 2f1a64f82ab..5a294af893d 100644
--- a/libstdc++-v3/include/bits/valarray_before.h
+++ b/libstdc++-v3/include/bits/valarray_before.h
@@ -1,6 +1,6 @@
// The template and inlines for the -*- C++ -*- internal _Meta class.
-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -42,8 +42,8 @@
#include
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
//
// Implementing a loosened valarray return value is tricky.
// First we need to meet 26.3.1/3: we should not add more than
@@ -730,10 +730,6 @@ namespace std
_SClos (_Array<_Tp> __a, const slice& __s) : _Base (__a, __s) {}
};
-} // std::
+_GLIBCXX_END_NAMESPACE
#endif /* _CPP_VALARRAY_BEFORE_H */
-
-// Local Variables:
-// mode:c++
-// End:
diff --git a/libstdc++-v3/include/bits/vector.tcc b/libstdc++-v3/include/bits/vector.tcc
index 9213057a2ab..f476c460d33 100644
--- a/libstdc++-v3/include/bits/vector.tcc
+++ b/libstdc++-v3/include/bits/vector.tcc
@@ -61,8 +61,8 @@
#ifndef _VECTOR_TCC
#define _VECTOR_TCC 1
-namespace _GLIBCXX_STD
-{
+_GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD)
+
template
void
vector<_Tp, _Alloc>::
@@ -490,6 +490,7 @@ namespace _GLIBCXX_STD
}
}
}
-} // namespace std
+
+_GLIBCXX_END_NESTED_NAMESPACE
#endif /* _VECTOR_TCC */
diff --git a/libstdc++-v3/include/c_std/std_cctype.h b/libstdc++-v3/include/c_std/std_cctype.h
index 008f7069f41..92473981df8 100644
--- a/libstdc++-v3/include/c_std/std_cctype.h
+++ b/libstdc++-v3/include/c_std/std_cctype.h
@@ -65,8 +65,8 @@
#undef tolower
#undef toupper
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
using ::isalnum;
using ::isalpha;
using ::iscntrl;
@@ -80,6 +80,7 @@ namespace std
using ::isxdigit;
using ::tolower;
using ::toupper;
-}
+
+_GLIBCXX_END_NAMESPACE
#endif
diff --git a/libstdc++-v3/include/c_std/std_clocale.h b/libstdc++-v3/include/c_std/std_clocale.h
index 9a3e516e7c1..2ec904c6cd8 100644
--- a/libstdc++-v3/include/c_std/std_clocale.h
+++ b/libstdc++-v3/include/c_std/std_clocale.h
@@ -47,17 +47,19 @@
#pragma GCC system_header
+#include
#include
// Get rid of those macros defined in in lieu of real functions.
#undef setlocale
#undef localeconv
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
using ::lconv;
using ::setlocale;
using ::localeconv;
-}
+
+_GLIBCXX_END_NAMESPACE
#endif
diff --git a/libstdc++-v3/include/c_std/std_cmath.h b/libstdc++-v3/include/c_std/std_cmath.h
index 115fe471064..7728faf176f 100644
--- a/libstdc++-v3/include/c_std/std_cmath.h
+++ b/libstdc++-v3/include/c_std/std_cmath.h
@@ -78,9 +78,8 @@
#undef tan
#undef tanh
+_GLIBCXX_BEGIN_NAMESPACE(std)
-namespace std
-{
// Forward declaration of a helper function. This really should be
// an `exported' forward declaration.
template _Tp __cmath_power(_Tp, unsigned int);
@@ -435,15 +434,17 @@ namespace std
inline typename __enable_if::__value>::__type
tanh(_Tp __x)
{ return __builtin_tanh(__x); }
-}
+
+_GLIBCXX_END_NAMESPACE
#if _GLIBCXX_USE_C99_MATH
#if !_GLIBCXX_USE_C99_FP_MACROS_DYNAMIC
// These are possible macros imported from C99-land. For strict
// conformance, remove possible C99-injected names from the global
// namespace, and sequester them in the __gnu_cxx extension namespace.
-namespace __gnu_cxx
-{
+
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
template
inline int
__capture_fpclassify(_Tp __f) { return fpclassify(__f); }
@@ -496,7 +497,8 @@ namespace __gnu_cxx
inline int
__capture_isunordered(_Tp __f1, _Tp __f2)
{ return isunordered(__f1, __f2); }
-}
+
+_GLIBCXX_END_NAMESPACE
// Only undefine the C99 FP macros, if actually captured for namespace movement
#undef fpclassify
@@ -512,62 +514,64 @@ namespace __gnu_cxx
#undef islessgreater
#undef isunordered
-namespace std
-{
- template
- inline int
- fpclassify(_Tp __f) { return __gnu_cxx::__capture_fpclassify(__f); }
+_GLIBCXX_BEGIN_NAMESPACE(std)
template
inline int
- isfinite(_Tp __f) { return __gnu_cxx::__capture_isfinite(__f); }
+ fpclassify(_Tp __f) { return ::__gnu_cxx::__capture_fpclassify(__f); }
template
inline int
- isinf(_Tp __f) { return __gnu_cxx::__capture_isinf(__f); }
+ isfinite(_Tp __f) { return ::__gnu_cxx::__capture_isfinite(__f); }
template
inline int
- isnan(_Tp __f) { return __gnu_cxx::__capture_isnan(__f); }
+ isinf(_Tp __f) { return ::__gnu_cxx::__capture_isinf(__f); }
template
inline int
- isnormal(_Tp __f) { return __gnu_cxx::__capture_isnormal(__f); }
+ isnan(_Tp __f) { return ::__gnu_cxx::__capture_isnan(__f); }
template
inline int
- signbit(_Tp __f) { return __gnu_cxx::__capture_signbit(__f); }
+ isnormal(_Tp __f) { return ::__gnu_cxx::__capture_isnormal(__f); }
+
+ template
+ inline int
+ signbit(_Tp __f) { return ::__gnu_cxx::__capture_signbit(__f); }
template
inline int
isgreater(_Tp __f1, _Tp __f2)
- { return __gnu_cxx::__capture_isgreater(__f1, __f2); }
+ { return ::__gnu_cxx::__capture_isgreater(__f1, __f2); }
template
inline int
isgreaterequal(_Tp __f1, _Tp __f2)
- { return __gnu_cxx::__capture_isgreaterequal(__f1, __f2); }
+ { return ::__gnu_cxx::__capture_isgreaterequal(__f1, __f2); }
template
inline int
isless(_Tp __f1, _Tp __f2)
- { return __gnu_cxx::__capture_isless(__f1, __f2); }
+ { return ::__gnu_cxx::__capture_isless(__f1, __f2); }
template
inline int
islessequal(_Tp __f1, _Tp __f2)
- { return __gnu_cxx::__capture_islessequal(__f1, __f2); }
+ { return ::__gnu_cxx::__capture_islessequal(__f1, __f2); }
template
inline int
islessgreater(_Tp __f1, _Tp __f2)
- { return __gnu_cxx::__capture_islessgreater(__f1, __f2); }
+ { return ::__gnu_cxx::__capture_islessgreater(__f1, __f2); }
template
inline int
isunordered(_Tp __f1, _Tp __f2)
- { return __gnu_cxx::__capture_isunordered(__f1, __f2); }
-}
+ { return ::__gnu_cxx::__capture_isunordered(__f1, __f2); }
+
+_GLIBCXX_END_NAMESPACE
+
#endif /* _GLIBCXX_USE_C99_FP_MACROS_DYNAMIC */
#endif
diff --git a/libstdc++-v3/include/c_std/std_csetjmp.h b/libstdc++-v3/include/c_std/std_csetjmp.h
index 290f2e9e675..5d664ebd8d9 100644
--- a/libstdc++-v3/include/c_std/std_csetjmp.h
+++ b/libstdc++-v3/include/c_std/std_csetjmp.h
@@ -47,6 +47,7 @@
#pragma GCC system_header
+#include
#include
// Get rid of those macros defined in in lieu of real functions.
@@ -57,10 +58,11 @@
#define setjmp(env) setjmp (env)
#endif
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
using ::jmp_buf;
using ::longjmp;
-}
+
+_GLIBCXX_END_NAMESPACE
#endif
diff --git a/libstdc++-v3/include/c_std/std_csignal.h b/libstdc++-v3/include/c_std/std_csignal.h
index 0db1c11abe3..4202b77c586 100644
--- a/libstdc++-v3/include/c_std/std_csignal.h
+++ b/libstdc++-v3/include/c_std/std_csignal.h
@@ -47,16 +47,18 @@
#pragma GCC system_header
+#include
#include
// Get rid of those macros defined in in lieu of real functions.
#undef raise
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
using ::sig_atomic_t;
using ::signal;
using ::raise;
-}
+
+_GLIBCXX_END_NAMESPACE
#endif
diff --git a/libstdc++-v3/include/c_std/std_cstdarg.h b/libstdc++-v3/include/c_std/std_cstdarg.h
index c98b5dbf88f..bbc3b338e86 100644
--- a/libstdc++-v3/include/c_std/std_cstdarg.h
+++ b/libstdc++-v3/include/c_std/std_cstdarg.h
@@ -47,6 +47,7 @@
#pragma GCC system_header
+#include
#include
// Adhere to section 17.4.1.2 clause 5 of ISO 14882:1998
@@ -54,9 +55,10 @@
#define va_end(ap) va_end (ap)
#endif
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
using ::va_list;
-}
+
+_GLIBCXX_END_NAMESPACE
#endif
diff --git a/libstdc++-v3/include/c_std/std_cstddef.h b/libstdc++-v3/include/c_std/std_cstddef.h
index f1860a76143..ad529d530da 100644
--- a/libstdc++-v3/include/c_std/std_cstddef.h
+++ b/libstdc++-v3/include/c_std/std_cstddef.h
@@ -47,12 +47,14 @@
#pragma GCC system_header
+#include
#include
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
using ::ptrdiff_t;
using ::size_t;
-}
+
+_GLIBCXX_END_NAMESPACE
#endif
diff --git a/libstdc++-v3/include/c_std/std_cstdio.h b/libstdc++-v3/include/c_std/std_cstdio.h
index 9f5f7dd3ac1..c8109c0409b 100644
--- a/libstdc++-v3/include/c_std/std_cstdio.h
+++ b/libstdc++-v3/include/c_std/std_cstdio.h
@@ -95,8 +95,8 @@
#undef vprintf
#undef vsprintf
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
using ::FILE;
using ::fpos_t;
@@ -141,7 +141,8 @@ namespace std
using ::vfprintf;
using ::vprintf;
using ::vsprintf;
-}
+
+_GLIBCXX_END_NAMESPACE
#if _GLIBCXX_USE_C99
@@ -151,8 +152,8 @@ namespace std
#undef vsnprintf
#undef vsscanf
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
#if _GLIBCXX_USE_C99_CHECK || _GLIBCXX_USE_C99_DYNAMIC
extern "C" int
(snprintf)(char * restrict, size_t, const char * restrict, ...);
@@ -172,16 +173,19 @@ namespace __gnu_cxx
using ::vsnprintf;
using ::vsscanf;
#endif
-}
-namespace std
-{
- using __gnu_cxx::snprintf;
- using __gnu_cxx::vfscanf;
- using __gnu_cxx::vscanf;
- using __gnu_cxx::vsnprintf;
- using __gnu_cxx::vsscanf;
-}
+_GLIBCXX_END_NAMESPACE
+
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
+ using ::__gnu_cxx::snprintf;
+ using ::__gnu_cxx::vfscanf;
+ using ::__gnu_cxx::vscanf;
+ using ::__gnu_cxx::vsnprintf;
+ using ::__gnu_cxx::vsscanf;
+
+_GLIBCXX_END_NAMESPACE
+
#endif
#endif
diff --git a/libstdc++-v3/include/c_std/std_cstdlib.h b/libstdc++-v3/include/c_std/std_cstdlib.h
index 2139092f57d..cc2a8cfbee9 100644
--- a/libstdc++-v3/include/c_std/std_cstdlib.h
+++ b/libstdc++-v3/include/c_std/std_cstdlib.h
@@ -59,12 +59,13 @@
#define EXIT_SUCCESS 0
#define EXIT_FAILURE 1
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
extern "C" void abort(void);
extern "C" int atexit(void (*)());
extern "C" void exit(int);
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
#else
@@ -100,8 +101,8 @@ namespace std
#undef wcstombs
#undef wctomb
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
using ::div_t;
using ::ldiv_t;
@@ -143,7 +144,8 @@ namespace std
inline ldiv_t
div(long __i, long __j) { return ldiv(__i, __j); }
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
#if _GLIBCXX_USE_C99
@@ -156,8 +158,8 @@ namespace std
#undef strtof
#undef strtold
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
#if !_GLIBCXX_USE_C99_LONG_LONG_DYNAMIC
using ::lldiv_t;
#endif
@@ -195,10 +197,11 @@ namespace __gnu_cxx
#endif
using ::strtof;
using ::strtold;
-}
-namespace std
-{
+_GLIBCXX_END_NAMESPACE
+
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
#if !_GLIBCXX_USE_C99_LONG_LONG_DYNAMIC
using ::__gnu_cxx::lldiv_t;
#endif
@@ -214,7 +217,8 @@ namespace std
using ::__gnu_cxx::strtoll;
using ::__gnu_cxx::strtoull;
using ::__gnu_cxx::strtold;
-}
+
+_GLIBCXX_END_NAMESPACE
#endif // _GLIBCXX_USE_C99
diff --git a/libstdc++-v3/include/c_std/std_cstring.h b/libstdc++-v3/include/c_std/std_cstring.h
index 7efbf8f3262..a77e7c28a80 100644
--- a/libstdc++-v3/include/c_std/std_cstring.h
+++ b/libstdc++-v3/include/c_std/std_cstring.h
@@ -47,8 +47,8 @@
#pragma GCC system_header
+#include
#include
-
#include
// Get rid of those macros defined in in lieu of real functions.
@@ -75,8 +75,8 @@
#undef strerror
#undef strlen
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
using ::memcpy;
using ::memmove;
using ::strcpy;
@@ -124,6 +124,7 @@ namespace std
inline char*
strstr(char* __s1, const char* __s2)
{ return __builtin_strstr(const_cast(__s1), __s2); }
-}
+
+_GLIBCXX_END_NAMESPACE
#endif
diff --git a/libstdc++-v3/include/c_std/std_ctime.h b/libstdc++-v3/include/c_std/std_ctime.h
index ef3307e1e3c..05295cf0f43 100644
--- a/libstdc++-v3/include/c_std/std_ctime.h
+++ b/libstdc++-v3/include/c_std/std_ctime.h
@@ -48,7 +48,6 @@
#pragma GCC system_header
#include
-
#include
// Get rid of those macros defined in in lieu of real functions.
@@ -62,8 +61,8 @@
#undef localtime
#undef strftime
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
using ::clock_t;
using ::time_t;
using ::tm;
@@ -77,6 +76,7 @@ namespace std
using ::gmtime;
using ::localtime;
using ::strftime;
-}
+
+_GLIBCXX_END_NAMESPACE
#endif
diff --git a/libstdc++-v3/include/c_std/std_cwchar.h b/libstdc++-v3/include/c_std/std_cwchar.h
index 5e3ab9099d7..8f03a416ad0 100644
--- a/libstdc++-v3/include/c_std/std_cwchar.h
+++ b/libstdc++-v3/include/c_std/std_cwchar.h
@@ -67,10 +67,11 @@ extern "C"
}
#endif
-namespace std
-{
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
using ::mbstate_t;
-}
+
+_GLIBCXX_END_NAMESPACE
// Get rid of those macros defined in in lieu of real functions.
#undef btowc
@@ -139,8 +140,9 @@ namespace std
#undef wscanf
#if _GLIBCXX_USE_WCHAR_T
-namespace std
-{
+
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
using ::wint_t;
using ::btowc;
@@ -232,7 +234,8 @@ namespace std
inline wchar_t*
wmemchr(wchar_t* __p, wchar_t __c, size_t __n)
{ return wmemchr(const_cast(__p), __c, __n); }
-}
+
+_GLIBCXX_END_NAMESPACE
#if _GLIBCXX_USE_C99
@@ -240,8 +243,8 @@ namespace std
#undef wcstoll
#undef wcstoull
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
#if _GLIBCXX_USE_C99_CHECK || _GLIBCXX_USE_C99_DYNAMIC
extern "C" long double
(wcstold)(const wchar_t * restrict, wchar_t ** restrict);
@@ -259,14 +262,17 @@ namespace __gnu_cxx
using ::wcstoll;
using ::wcstoull;
#endif
-}
-namespace std
-{
- using __gnu_cxx::wcstold;
- using __gnu_cxx::wcstoll;
- using __gnu_cxx::wcstoull;
-}
+_GLIBCXX_END_NAMESPACE
+
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
+ using ::__gnu_cxx::wcstold;
+ using ::__gnu_cxx::wcstoll;
+ using ::__gnu_cxx::wcstoull;
+
+_GLIBCXX_END_NAMESPACE
+
#endif
#endif //_GLIBCXX_USE_WCHAR_T
diff --git a/libstdc++-v3/include/c_std/std_cwctype.h b/libstdc++-v3/include/c_std/std_cwctype.h
index 9f297c42eed..ba699b75df0 100644
--- a/libstdc++-v3/include/c_std/std_cwctype.h
+++ b/libstdc++-v3/include/c_std/std_cwctype.h
@@ -76,8 +76,9 @@
#undef wctype
#if _GLIBCXX_USE_WCHAR_T
-namespace std
-{
+
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
using ::wint_t; // cwchar
using ::wctype_t;
@@ -103,7 +104,9 @@ namespace std
using ::towupper;
using ::wctrans;
using ::wctype;
-}
+
+_GLIBCXX_END_NAMESPACE
+
#endif //_GLIBCXX_USE_WCHAR_T
#endif
diff --git a/libstdc++-v3/include/debug/bitset b/libstdc++-v3/include/debug/bitset
index 2bdca187b5c..11970c6748f 100644
--- a/libstdc++-v3/include/debug/bitset
+++ b/libstdc++-v3/include/debug/bitset
@@ -35,6 +35,8 @@
#include
#include
+namespace std
+{
namespace __gnu_debug_def
{
template
@@ -68,7 +70,7 @@ namespace __gnu_debug_def
operator=(bool __x)
{
_GLIBCXX_DEBUG_VERIFY(! this->_M_singular(),
- _M_message(::__gnu_debug::__msg_bad_bitset_write)
+ _M_message(__gnu_debug::__msg_bad_bitset_write)
._M_iterator(*this));
*static_cast<_Base_ref*>(this) = __x;
return *this;
@@ -78,10 +80,10 @@ namespace __gnu_debug_def
operator=(const reference& __x)
{
_GLIBCXX_DEBUG_VERIFY(! __x._M_singular(),
- _M_message(::__gnu_debug::__msg_bad_bitset_read)
+ _M_message(__gnu_debug::__msg_bad_bitset_read)
._M_iterator(__x));
_GLIBCXX_DEBUG_VERIFY(! this->_M_singular(),
- _M_message(::__gnu_debug::__msg_bad_bitset_write)
+ _M_message(__gnu_debug::__msg_bad_bitset_write)
._M_iterator(*this));
*static_cast<_Base_ref*>(this) = __x;
return *this;
@@ -91,7 +93,7 @@ namespace __gnu_debug_def
operator~() const
{
_GLIBCXX_DEBUG_VERIFY(! this->_M_singular(),
- _M_message(::__gnu_debug::__msg_bad_bitset_read)
+ _M_message(__gnu_debug::__msg_bad_bitset_read)
._M_iterator(*this));
return ~(*static_cast(this));
}
@@ -99,7 +101,7 @@ namespace __gnu_debug_def
operator bool() const
{
_GLIBCXX_DEBUG_VERIFY(! this->_M_singular(),
- _M_message(::__gnu_debug::__msg_bad_bitset_read)
+ _M_message(__gnu_debug::__msg_bad_bitset_read)
._M_iterator(*this));
return *static_cast(this);
}
@@ -108,7 +110,7 @@ namespace __gnu_debug_def
flip()
{
_GLIBCXX_DEBUG_VERIFY(! this->_M_singular(),
- _M_message(::__gnu_debug::__msg_bad_bitset_flip)
+ _M_message(__gnu_debug::__msg_bad_bitset_flip)
._M_iterator(*this));
_Base_ref::flip();
return *this;
@@ -317,5 +319,6 @@ namespace __gnu_debug_def
const bitset<_Nb>& __x)
{ return __os << __x._M_base(); }
} // namespace __gnu_debug_def
+} // namespace std
#endif
diff --git a/libstdc++-v3/include/debug/debug.h b/libstdc++-v3/include/debug/debug.h
index c2910968176..4eff05bdab6 100644
--- a/libstdc++-v3/include/debug/debug.h
+++ b/libstdc++-v3/include/debug/debug.h
@@ -39,16 +39,27 @@
* standard library algorithms.
*/
+
+namespace std
+{
+ namespace __gnu_debug_def { }
+ namespace __gnu_debug { using namespace __gnu_debug_def; }
+}
+
+namespace debug = std::__gnu_debug;
+
#ifdef _GLIBCXX_DEBUG
-# include
# include
# include
+# include
-// Avoid the use of assert, because we're trying to keep the
-// include out of the mix.
+namespace std
+{
namespace __gnu_debug
{
+ // Avoid the use of assert, because we're trying to keep the
+ // include out of the mix.
inline void
__replacement_assert(const char* __file, int __line, const char* __function,
const char* __condition)
@@ -57,12 +68,13 @@ namespace __gnu_debug
__function, __condition);
std::abort();
}
-}
+} // namespace __gnu_debug
+} // namespace std
#define _GLIBCXX_DEBUG_ASSERT(_Condition) \
do { \
if (! (_Condition)) \
- ::__gnu_debug::__replacement_assert(__FILE__, __LINE__, \
+ std::__gnu_debug::__replacement_assert(__FILE__, __LINE__, \
__PRETTY_FUNCTION__, \
#_Condition); \
} while (false)
diff --git a/libstdc++-v3/include/debug/deque b/libstdc++-v3/include/debug/deque
index a69ce621979..48cbe1a5b50 100644
--- a/libstdc++-v3/include/debug/deque
+++ b/libstdc++-v3/include/debug/deque
@@ -35,6 +35,8 @@
#include
#include
+namespace std
+{
namespace __gnu_debug_def
{
template >
@@ -382,5 +384,6 @@ namespace __gnu_debug_def
swap(deque<_Tp, _Alloc>& __lhs, deque<_Tp, _Alloc>& __rhs)
{ __lhs.swap(__rhs); }
} // namespace __gnu_debug_def
+} // namespace std
#endif
diff --git a/libstdc++-v3/include/debug/formatter.h b/libstdc++-v3/include/debug/formatter.h
index 2c2035ea880..b37ee8cf276 100644
--- a/libstdc++-v3/include/debug/formatter.h
+++ b/libstdc++-v3/include/debug/formatter.h
@@ -33,10 +33,10 @@
#include
#include
+namespace std
+{
namespace __gnu_debug
{
- using std::type_info;
-
/** Determine if the two types are the same. */
template
struct __is_same
@@ -386,5 +386,6 @@ namespace __gnu_debug
{ return _Error_formatter(__file, __line); }
};
} // namespace __gnu_debug
+} // namespace std
#endif
diff --git a/libstdc++-v3/include/debug/functions.h b/libstdc++-v3/include/debug/functions.h
index 744071120cc..1abe16300cd 100644
--- a/libstdc++-v3/include/debug/functions.h
+++ b/libstdc++-v3/include/debug/functions.h
@@ -31,10 +31,13 @@
#ifndef _GLIBCXX_DEBUG_FUNCTIONS_H
#define _GLIBCXX_DEBUG_FUNCTIONS_H 1
+#include
#include // for ptrdiff_t
#include // for iterator_traits, categories
#include // for __is_integer
+namespace std
+{
namespace __gnu_debug
{
template
@@ -49,7 +52,7 @@ namespace __gnu_debug
template
inline bool
__check_singular(_Iterator& __x)
- { return __gnu_debug::__check_singular_aux(&__x); }
+ { return __check_singular_aux(&__x); }
/** Non-NULL pointers are nonsingular. */
template
@@ -121,7 +124,7 @@ namespace __gnu_debug
{
typedef typename std::iterator_traits<_InputIterator>::iterator_category
_Category;
- return __gnu_debug::__valid_range_aux2(__first, __last, _Category());
+ return __valid_range_aux2(__first, __last, _Category());
}
/** Don't know what these iterators are, or if they are even
@@ -134,7 +137,7 @@ namespace __gnu_debug
__valid_range(const _InputIterator& __first, const _InputIterator& __last)
{
typedef typename std::__is_integer<_InputIterator>::__type _Integral;
- return __gnu_debug::__valid_range_aux(__first, __last, _Integral());
+ return __valid_range_aux(__first, __last, _Integral());
}
/** Safe iterators know how to check if they form a valid range. */
@@ -153,7 +156,7 @@ namespace __gnu_debug
__check_valid_range(const _InputIterator& __first,
const _InputIterator& __last)
{
- _GLIBCXX_DEBUG_ASSERT(__gnu_debug::__valid_range(__first, __last));
+ _GLIBCXX_DEBUG_ASSERT(__valid_range(__first, __last));
return __first;
}
@@ -240,7 +243,7 @@ namespace __gnu_debug
{
typedef typename std::iterator_traits<_InputIterator>::iterator_category
_Category;
- return __gnu_debug::__check_sorted_aux(__first, __last, _Category());
+ return __check_sorted_aux(__first, __last, _Category());
}
template
@@ -250,7 +253,7 @@ namespace __gnu_debug
{
typedef typename std::iterator_traits<_InputIterator>::iterator_category
_Category;
- return __gnu_debug::__check_sorted_aux(__first, __last, __pred,
+ return __check_sorted_aux(__first, __last, __pred,
_Category());
}
@@ -282,5 +285,6 @@ namespace __gnu_debug
return __first == __last;
}
} // namespace __gnu_debug
+} // namespace std
#endif
diff --git a/libstdc++-v3/include/debug/hash_map.h b/libstdc++-v3/include/debug/hash_map.h
index a6900b5f3c2..e02b747a04d 100644
--- a/libstdc++-v3/include/debug/hash_map.h
+++ b/libstdc++-v3/include/debug/hash_map.h
@@ -1,6 +1,6 @@
// Debugging hash_map implementation -*- C++ -*-
-// Copyright (C) 2003
+// Copyright (C) 2003, 2005
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -34,6 +34,8 @@
#include
#include
+namespace std
+{
namespace __gnu_debug_def
{
template& __y)
{ __x.swap(__y); }
} // namespace __gnu_debug_def
+} // namespace std
#endif
diff --git a/libstdc++-v3/include/debug/hash_multimap.h b/libstdc++-v3/include/debug/hash_multimap.h
index a6db0f2f2d5..5cce135aa43 100644
--- a/libstdc++-v3/include/debug/hash_multimap.h
+++ b/libstdc++-v3/include/debug/hash_multimap.h
@@ -1,6 +1,6 @@
// Debugging hash_multimap implementation -*- C++ -*-
-// Copyright (C) 2003
+// Copyright (C) 2003, 2005
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -34,6 +34,8 @@
#include
#include
+namespace std
+{
namespace __gnu_debug_def
{
template& __y)
{ __x.swap(__y); }
} // namespace __gnu_debug_def
+} // namespace std
#endif
diff --git a/libstdc++-v3/include/debug/hash_multiset.h b/libstdc++-v3/include/debug/hash_multiset.h
index a1ad151afb0..83d5619b9cd 100644
--- a/libstdc++-v3/include/debug/hash_multiset.h
+++ b/libstdc++-v3/include/debug/hash_multiset.h
@@ -1,6 +1,6 @@
// Debugging hash_multiset implementation -*- C++ -*-
-// Copyright (C) 2003
+// Copyright (C) 2003, 2005
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -34,6 +34,8 @@
#include
#include
+namespace std
+{
namespace __gnu_debug_def
{
template& __y)
{ __x.swap(__y); }
} // namespace __gnu_debug_def
+} // namespace std
#endif
diff --git a/libstdc++-v3/include/debug/hash_set.h b/libstdc++-v3/include/debug/hash_set.h
index aa62a2ea7e3..e1dd83bc646 100644
--- a/libstdc++-v3/include/debug/hash_set.h
+++ b/libstdc++-v3/include/debug/hash_set.h
@@ -1,6 +1,6 @@
// Debugging hash_set implementation -*- C++ -*-
-// Copyright (C) 2003
+// Copyright (C) 2003, 2005
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -34,6 +34,8 @@
#include
#include
+namespace std
+{
namespace __gnu_debug_def
{
template& __y)
{ __x.swap(__y); }
} // namespace __gnu_debug_def
+} // namespace std
#endif
diff --git a/libstdc++-v3/include/debug/list b/libstdc++-v3/include/debug/list
index 2e6d0fa5103..43dc137d1d5 100644
--- a/libstdc++-v3/include/debug/list
+++ b/libstdc++-v3/include/debug/list
@@ -36,6 +36,8 @@
#include
#include
+namespace std
+{
namespace __gnu_debug_def
{
template >
@@ -296,7 +298,7 @@ namespace __gnu_debug_def
splice(iterator __position, list& __x)
{
_GLIBCXX_DEBUG_VERIFY(&__x != this,
- _M_message(::__gnu_debug::__msg_self_splice)
+ _M_message(__gnu_debug::__msg_self_splice)
._M_sequence(*this, "this"));
this->splice(__position, __x, __x.begin(), __x.end());
}
@@ -306,13 +308,13 @@ namespace __gnu_debug_def
{
__glibcxx_check_insert(__position);
_GLIBCXX_DEBUG_VERIFY(__x.get_allocator() == this->get_allocator(),
- _M_message(::__gnu_debug::__msg_splice_alloc)
+ _M_message(__gnu_debug::__msg_splice_alloc)
._M_sequence(*this)._M_sequence(__x, "__x"));
_GLIBCXX_DEBUG_VERIFY(__i._M_dereferenceable(),
- _M_message(::__gnu_debug::__msg_splice_bad)
+ _M_message(__gnu_debug::__msg_splice_bad)
._M_iterator(__i, "__i"));
_GLIBCXX_DEBUG_VERIFY(__i._M_attached_to(&__x),
- _M_message(::__gnu_debug::__msg_splice_other)
+ _M_message(__gnu_debug::__msg_splice_other)
._M_iterator(__i, "__i")._M_sequence(__x, "__x"));
// _GLIBCXX_RESOLVE_LIB_DEFECTS
@@ -327,17 +329,17 @@ namespace __gnu_debug_def
__glibcxx_check_insert(__position);
__glibcxx_check_valid_range(__first, __last);
_GLIBCXX_DEBUG_VERIFY(__first._M_attached_to(&__x),
- _M_message(::__gnu_debug::__msg_splice_other)
+ _M_message(__gnu_debug::__msg_splice_other)
._M_sequence(__x, "x")
._M_iterator(__first, "first"));
_GLIBCXX_DEBUG_VERIFY(__x.get_allocator() == this->get_allocator(),
- _M_message(::__gnu_debug::__msg_splice_alloc)
+ _M_message(__gnu_debug::__msg_splice_alloc)
._M_sequence(*this)._M_sequence(__x));
for (iterator __tmp = __first; __tmp != __last; )
{
_GLIBCXX_DEBUG_VERIFY(&__x != this || __tmp != __position,
- _M_message(::__gnu_debug::__msg_splice_overlap)
+ _M_message(__gnu_debug::__msg_splice_overlap)
._M_iterator(__tmp, "position")
._M_iterator(__first, "first")
._M_iterator(__last, "last"));
@@ -501,5 +503,6 @@ namespace __gnu_debug_def
swap(list<_Tp, _Alloc>& __lhs, list<_Tp, _Alloc>& __rhs)
{ __lhs.swap(__rhs); }
} // namespace __gnu_debug_def
+} // namespace std
#endif
diff --git a/libstdc++-v3/include/debug/macros.h b/libstdc++-v3/include/debug/macros.h
index 9b279cbf36a..3e24d99cd6f 100644
--- a/libstdc++-v3/include/debug/macros.h
+++ b/libstdc++-v3/include/debug/macros.h
@@ -43,14 +43,14 @@
#define _GLIBCXX_DEBUG_VERIFY(_Condition,_ErrorMessage) \
do { \
if (! (_Condition)) \
- ::__gnu_debug::_Error_formatter::_M_at(__FILE__, __LINE__) \
+ std::__gnu_debug::_Error_formatter::_M_at(__FILE__, __LINE__) \
._ErrorMessage._M_error(); \
} while (false)
// Verify that [_First, _Last) forms a valid iterator range.
#define __glibcxx_check_valid_range(_First,_Last) \
-_GLIBCXX_DEBUG_VERIFY(::__gnu_debug::__valid_range(_First, _Last), \
- _M_message(::__gnu_debug::__msg_valid_range) \
+_GLIBCXX_DEBUG_VERIFY(std::__gnu_debug::__valid_range(_First, _Last), \
+ _M_message(std::__gnu_debug::__msg_valid_range) \
._M_iterator(_First, #_First) \
._M_iterator(_Last, #_Last))
@@ -63,11 +63,11 @@ _GLIBCXX_DEBUG_VERIFY(::__gnu_debug::__valid_range(_First, _Last), \
*/
#define __glibcxx_check_insert(_Position) \
_GLIBCXX_DEBUG_VERIFY(!_Position._M_singular(), \
- _M_message(::__gnu_debug::__msg_insert_singular) \
+ _M_message(std::__gnu_debug::__msg_insert_singular) \
._M_sequence(*this, "this") \
._M_iterator(_Position, #_Position)); \
_GLIBCXX_DEBUG_VERIFY(_Position._M_attached_to(this), \
- _M_message(::__gnu_debug::__msg_insert_different) \
+ _M_message(std::__gnu_debug::__msg_insert_different) \
._M_sequence(*this, "this") \
._M_iterator(_Position, #_Position))
@@ -87,11 +87,11 @@ _GLIBCXX_DEBUG_VERIFY(_Position._M_attached_to(this), \
#define __glibcxx_check_insert_range(_Position,_First,_Last) \
__glibcxx_check_valid_range(_First,_Last); \
_GLIBCXX_DEBUG_VERIFY(!_Position._M_singular(), \
- _M_message(::__gnu_debug::__msg_insert_singular) \
+ _M_message(std::__gnu_debug::__msg_insert_singular) \
._M_sequence(*this, "this") \
._M_iterator(_Position, #_Position)); \
_GLIBCXX_DEBUG_VERIFY(_Position._M_attached_to(this), \
- _M_message(::__gnu_debug::__msg_insert_different) \
+ _M_message(std::__gnu_debug::__msg_insert_different) \
._M_sequence(*this, "this") \
._M_iterator(_Position, #_Position))
@@ -101,11 +101,11 @@ _GLIBCXX_DEBUG_VERIFY(_Position._M_attached_to(this), \
*/
#define __glibcxx_check_erase(_Position) \
_GLIBCXX_DEBUG_VERIFY(_Position._M_dereferenceable(), \
- _M_message(::__gnu_debug::__msg_erase_bad) \
+ _M_message(std::__gnu_debug::__msg_erase_bad) \
._M_sequence(*this, "this") \
._M_iterator(_Position, #_Position)); \
_GLIBCXX_DEBUG_VERIFY(_Position._M_attached_to(this), \
- _M_message(::__gnu_debug::__msg_erase_different) \
+ _M_message(std::__gnu_debug::__msg_erase_different) \
._M_sequence(*this, "this") \
._M_iterator(_Position, #_Position))
@@ -116,7 +116,7 @@ _GLIBCXX_DEBUG_VERIFY(_Position._M_attached_to(this), \
#define __glibcxx_check_erase_range(_First,_Last) \
__glibcxx_check_valid_range(_First,_Last); \
_GLIBCXX_DEBUG_VERIFY(_First._M_attached_to(this), \
- _M_message(::__gnu_debug::__msg_erase_different) \
+ _M_message(std::__gnu_debug::__msg_erase_different) \
._M_sequence(*this, "this") \
._M_iterator(_First, #_First) \
._M_iterator(_Last, #_Last))
@@ -124,7 +124,7 @@ _GLIBCXX_DEBUG_VERIFY(_First._M_attached_to(this), \
// Verify that the subscript _N is less than the container's size.
#define __glibcxx_check_subscript(_N) \
_GLIBCXX_DEBUG_VERIFY(_N < this->size(), \
- _M_message(::__gnu_debug::__msg_subscript_oob) \
+ _M_message(std::__gnu_debug::__msg_subscript_oob) \
._M_sequence(*this, "this") \
._M_integer(_N, #_N) \
._M_integer(this->size(), "size"))
@@ -132,7 +132,7 @@ _GLIBCXX_DEBUG_VERIFY(_N < this->size(), \
// Verify that the container is nonempty
#define __glibcxx_check_nonempty() \
_GLIBCXX_DEBUG_VERIFY(! this->empty(), \
- _M_message(::__gnu_debug::__msg_empty) \
+ _M_message(std::__gnu_debug::__msg_empty) \
._M_sequence(*this, "this"))
// Verify that the < operator for elements in the sequence is a
@@ -150,8 +150,8 @@ _GLIBCXX_DEBUG_ASSERT(_First == _Last || !_Pred(*_First, *_First))
#define __glibcxx_check_sorted(_First,_Last) \
__glibcxx_check_valid_range(_First,_Last); \
__glibcxx_check_strict_weak_ordering(_First,_Last); \
-_GLIBCXX_DEBUG_VERIFY(::__gnu_debug::__check_sorted(_First, _Last), \
- _M_message(::__gnu_debug::__msg_unsorted) \
+_GLIBCXX_DEBUG_VERIFY(std::__gnu_debug::__check_sorted(_First, _Last), \
+ _M_message(std::__gnu_debug::__msg_unsorted) \
._M_iterator(_First, #_First) \
._M_iterator(_Last, #_Last))
@@ -160,8 +160,8 @@ _GLIBCXX_DEBUG_VERIFY(::__gnu_debug::__check_sorted(_First, _Last), \
#define __glibcxx_check_sorted_pred(_First,_Last,_Pred) \
__glibcxx_check_valid_range(_First,_Last); \
__glibcxx_check_strict_weak_ordering_pred(_First,_Last,_Pred); \
-_GLIBCXX_DEBUG_VERIFY(::__gnu_debug::__check_sorted(_First, _Last, _Pred), \
- _M_message(::__gnu_debug::__msg_unsorted_pred) \
+_GLIBCXX_DEBUG_VERIFY(std::__gnu_debug::__check_sorted(_First, _Last, _Pred), \
+ _M_message(std::__gnu_debug::__msg_unsorted_pred) \
._M_iterator(_First, #_First) \
._M_iterator(_Last, #_Last) \
._M_string(#_Pred))
@@ -170,9 +170,9 @@ _GLIBCXX_DEBUG_VERIFY(::__gnu_debug::__check_sorted(_First, _Last, _Pred), \
w.r.t. the value _Value. */
#define __glibcxx_check_partitioned(_First,_Last,_Value) \
__glibcxx_check_valid_range(_First,_Last); \
-_GLIBCXX_DEBUG_VERIFY(::__gnu_debug::__check_partitioned(_First, _Last, \
- _Value), \
- _M_message(::__gnu_debug::__msg_unpartitioned) \
+_GLIBCXX_DEBUG_VERIFY(std::__gnu_debug::__check_partitioned(_First, _Last, \
+ _Value), \
+ _M_message(std::__gnu_debug::__msg_unpartitioned) \
._M_iterator(_First, #_First) \
._M_iterator(_Last, #_Last) \
._M_string(#_Value))
@@ -181,9 +181,9 @@ _GLIBCXX_DEBUG_VERIFY(::__gnu_debug::__check_partitioned(_First, _Last, \
w.r.t. the value _Value and predicate _Pred. */
#define __glibcxx_check_partitioned_pred(_First,_Last,_Value,_Pred) \
__glibcxx_check_valid_range(_First,_Last); \
-_GLIBCXX_DEBUG_VERIFY(::__gnu_debug::__check_partitioned(_First, _Last, \
+_GLIBCXX_DEBUG_VERIFY(std::__gnu_debug::__check_partitioned(_First, _Last, \
_Value, _Pred), \
- _M_message(::__gnu_debug::__msg_unpartitioned_pred) \
+ _M_message(std::__gnu_debug::__msg_unpartitioned_pred) \
._M_iterator(_First, #_First) \
._M_iterator(_Last, #_Last) \
._M_string(#_Pred) \
@@ -192,8 +192,8 @@ _GLIBCXX_DEBUG_VERIFY(::__gnu_debug::__check_partitioned(_First, _Last, \
// Verify that the iterator range [_First, _Last) is a heap
#define __glibcxx_check_heap(_First,_Last) \
__glibcxx_check_valid_range(_First,_Last); \
-_GLIBCXX_DEBUG_VERIFY(::std::__is_heap(_First, _Last), \
- _M_message(::__gnu_debug::__msg_not_heap) \
+_GLIBCXX_DEBUG_VERIFY(std::__is_heap(_First, _Last), \
+ _M_message(std::__gnu_debug::__msg_not_heap) \
._M_iterator(_First, #_First) \
._M_iterator(_Last, #_Last))
@@ -201,8 +201,8 @@ _GLIBCXX_DEBUG_VERIFY(::std::__is_heap(_First, _Last), \
w.r.t. the predicate _Pred. */
#define __glibcxx_check_heap_pred(_First,_Last,_Pred) \
__glibcxx_check_valid_range(_First,_Last); \
-_GLIBCXX_DEBUG_VERIFY(::std::__is_heap(_First, _Last, _Pred), \
- _M_message(::__gnu_debug::__msg_not_heap_pred) \
+_GLIBCXX_DEBUG_VERIFY(std::__is_heap(_First, _Last, _Pred), \
+ _M_message(std::__gnu_debug::__msg_not_heap_pred) \
._M_iterator(_First, #_First) \
._M_iterator(_Last, #_Last) \
._M_string(#_Pred))
diff --git a/libstdc++-v3/include/debug/map.h b/libstdc++-v3/include/debug/map.h
index e0722db6c4f..75dd340b56f 100644
--- a/libstdc++-v3/include/debug/map.h
+++ b/libstdc++-v3/include/debug/map.h
@@ -35,6 +35,8 @@
#include
#include
+namespace std
+{
namespace __gnu_debug_def
{
template,
@@ -323,5 +325,6 @@ namespace __gnu_debug_def
map<_Key,_Tp,_Compare,_Allocator>& __rhs)
{ __lhs.swap(__rhs); }
} // namespace __gnu_debug_def
+} // namespace std
#endif
diff --git a/libstdc++-v3/include/debug/multimap.h b/libstdc++-v3/include/debug/multimap.h
index 89f5e87ad34..24f10f5828f 100644
--- a/libstdc++-v3/include/debug/multimap.h
+++ b/libstdc++-v3/include/debug/multimap.h
@@ -35,6 +35,8 @@
#include
#include
+namespace std
+{
namespace __gnu_debug_def
{
template,
@@ -310,5 +312,6 @@ namespace __gnu_debug_def
multimap<_Key,_Tp,_Compare,_Allocator>& __rhs)
{ __lhs.swap(__rhs); }
} // namespace __gnu_debug_def
+} // namespace std
#endif
diff --git a/libstdc++-v3/include/debug/multiset.h b/libstdc++-v3/include/debug/multiset.h
index 7353be94dfa..32ea0b9eb47 100644
--- a/libstdc++-v3/include/debug/multiset.h
+++ b/libstdc++-v3/include/debug/multiset.h
@@ -35,6 +35,8 @@
#include
#include
+namespace std
+{
namespace __gnu_debug_def
{
template,
@@ -316,5 +318,6 @@ namespace __gnu_debug_def
multiset<_Key,_Compare,_Allocator>& __y)
{ return __x.swap(__y); }
} // namespace __gnu_debug_def
+} // namespace std
#endif
diff --git a/libstdc++-v3/include/debug/safe_base.h b/libstdc++-v3/include/debug/safe_base.h
index b42a6c9c992..41ab648f5b9 100644
--- a/libstdc++-v3/include/debug/safe_base.h
+++ b/libstdc++-v3/include/debug/safe_base.h
@@ -1,6 +1,6 @@
// Safe sequence/iterator base implementation -*- C++ -*-
-// Copyright (C) 2003, 2004
+// Copyright (C) 2003, 2004, 2005
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -31,6 +31,8 @@
#ifndef _GLIBCXX_DEBUG_SAFE_BASE_H
#define _GLIBCXX_DEBUG_SAFE_BASE_H 1
+namespace std
+{
namespace __gnu_debug
{
class _Safe_sequence_base;
@@ -203,5 +205,6 @@ namespace __gnu_debug
{ if (++_M_version == 0) _M_version = 1; }
};
} // namespace __gnu_debug
+} // namespace std
#endif
diff --git a/libstdc++-v3/include/debug/safe_iterator.h b/libstdc++-v3/include/debug/safe_iterator.h
index c497c113c88..bcd7324cf81 100644
--- a/libstdc++-v3/include/debug/safe_iterator.h
+++ b/libstdc++-v3/include/debug/safe_iterator.h
@@ -39,11 +39,10 @@
#include
#include
+namespace std
+{
namespace __gnu_debug
{
- using std::iterator_traits;
- using std::pair;
-
/** Iterators that derive from _Safe_iterator_base but that aren't
* _Safe_iterators can be determined singular or non-singular via
* _Safe_iterator_base.
@@ -629,6 +628,7 @@ namespace __gnu_debug
const _Safe_iterator<_Iterator, _Sequence>& __i)
{ return __i + __n; }
} // namespace __gnu_debug
+} // namespace std
#ifndef _GLIBCXX_EXPORT_TEMPLATE
# include
diff --git a/libstdc++-v3/include/debug/safe_iterator.tcc b/libstdc++-v3/include/debug/safe_iterator.tcc
index da4d413b7e3..c5d49e0f299 100644
--- a/libstdc++-v3/include/debug/safe_iterator.tcc
+++ b/libstdc++-v3/include/debug/safe_iterator.tcc
@@ -1,6 +1,6 @@
// Debugging iterator implementation (out of line) -*- C++ -*-
-// Copyright (C) 2003, 2004
+// Copyright (C) 2003, 2004, 2005
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -36,6 +36,8 @@
#ifndef _GLIBCXX_DEBUG_SAFE_ITERATOR_TCC
#define _GLIBCXX_DEBUG_SAFE_ITERATOR_TCC 1
+namespace std
+{
namespace __gnu_debug
{
template
@@ -135,6 +137,7 @@ namespace __gnu_debug
}
}
} // namespace __gnu_debug
+} // namespace std
#endif
diff --git a/libstdc++-v3/include/debug/safe_sequence.h b/libstdc++-v3/include/debug/safe_sequence.h
index 82c5ae0047f..23eff2c4bef 100644
--- a/libstdc++-v3/include/debug/safe_sequence.h
+++ b/libstdc++-v3/include/debug/safe_sequence.h
@@ -36,6 +36,8 @@
#include
#include
+namespace std
+{
namespace __gnu_debug
{
template
@@ -178,5 +180,6 @@ namespace __gnu_debug
}
}
} // namespace __gnu_debug
+} // namespace std
#endif
diff --git a/libstdc++-v3/include/debug/set.h b/libstdc++-v3/include/debug/set.h
index d89a165ee4e..f9a21c6b5a1 100644
--- a/libstdc++-v3/include/debug/set.h
+++ b/libstdc++-v3/include/debug/set.h
@@ -35,6 +35,8 @@
#include
#include
+namespace std
+{
namespace __gnu_debug_def
{
template,
@@ -321,5 +323,6 @@ namespace __gnu_debug_def
set<_Key,_Compare,_Allocator>& __y)
{ return __x.swap(__y); }
} // namespace __gnu_debug_def
+} // namespace std
#endif
diff --git a/libstdc++-v3/include/debug/string b/libstdc++-v3/include/debug/string
index 18f90d068bd..e098d7a0b29 100644
--- a/libstdc++-v3/include/debug/string
+++ b/libstdc++-v3/include/debug/string
@@ -35,9 +35,11 @@
#include
#include
+namespace std
+{
namespace __gnu_debug
{
-template,
+ template,
typename _Allocator = std::allocator<_CharT> >
class basic_string
: public std::basic_string<_CharT, _Traits, _Allocator>,
@@ -204,7 +206,7 @@ template,
operator[](size_type __pos) const
{
_GLIBCXX_DEBUG_VERIFY(__pos <= this->size(),
- _M_message(::__gnu_debug::__msg_subscript_oob)
+ _M_message(__gnu_debug::__msg_subscript_oob)
._M_sequence(*this, "this")
._M_integer(__pos, "__pos")
._M_integer(this->size(), "size"));
@@ -219,7 +221,7 @@ template,
#else
// as an extension v3 allows s[s.size()] when s is non-const.
_GLIBCXX_DEBUG_VERIFY(__pos <= this->size(),
- _M_message(::__gnu_debug::__msg_subscript_oob)
+ _M_message(__gnu_debug::__msg_subscript_oob)
._M_sequence(*this, "this")
._M_integer(__pos, "__pos")
._M_integer(this->size(), "size"));
@@ -1014,5 +1016,6 @@ template,
#endif
} // namespace __gnu_debug
+} // namespace std
#endif
diff --git a/libstdc++-v3/include/debug/vector b/libstdc++-v3/include/debug/vector
index f2b36182423..5a1fc92348b 100644
--- a/libstdc++-v3/include/debug/vector
+++ b/libstdc++-v3/include/debug/vector
@@ -36,6 +36,8 @@
#include
#include
+namespace std
+{
namespace __gnu_debug_def
{
template& __lhs, vector<_Tp, _Alloc>& __rhs)
{ __lhs.swap(__rhs); }
} // namespace __gnu_debug_def
+} // namespace std
#endif
diff --git a/libstdc++-v3/include/ext/algorithm b/libstdc++-v3/include/ext/algorithm
index 44026209544..712a4edc7fd 100644
--- a/libstdc++-v3/include/ext/algorithm
+++ b/libstdc++-v3/include/ext/algorithm
@@ -1,6 +1,6 @@
// Algorithm extensions -*- C++ -*-
-// Copyright (C) 2001, 2002, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2004, 2005 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
@@ -65,8 +65,8 @@
#include
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
using std::ptrdiff_t;
using std::min;
using std::pair;
@@ -521,6 +521,7 @@ namespace __gnu_cxx
return false;
return true;
}
-} // namespace __gnu_cxx
+
+_GLIBCXX_END_NAMESPACE
#endif /* _EXT_ALGORITHM */
diff --git a/libstdc++-v3/include/ext/array_allocator.h b/libstdc++-v3/include/ext/array_allocator.h
index 77f5b5cc872..02af57893fc 100644
--- a/libstdc++-v3/include/ext/array_allocator.h
+++ b/libstdc++-v3/include/ext/array_allocator.h
@@ -39,8 +39,8 @@
#include
#include
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
/// @brief Base class.
template
class array_allocator_base
@@ -140,6 +140,7 @@ namespace __gnu_cxx
operator!=(const array_allocator<_Tp, _Array>&,
const array_allocator<_Tp, _Array>&)
{ return false; }
-} // namespace __gnu_cxx
+
+_GLIBCXX_END_NAMESPACE
#endif
diff --git a/libstdc++-v3/include/ext/bitmap_allocator.h b/libstdc++-v3/include/ext/bitmap_allocator.h
index 7860b6dbf97..6d80c99e509 100644
--- a/libstdc++-v3/include/ext/bitmap_allocator.h
+++ b/libstdc++-v3/include/ext/bitmap_allocator.h
@@ -69,8 +69,8 @@
#endif
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
#if defined __GTHREADS
namespace
{
@@ -1286,8 +1286,7 @@ namespace __gnu_cxx
bitmap_allocator<_Tp>::_S_mut;
#endif
-
-}
+_GLIBCXX_END_NAMESPACE
#endif
diff --git a/libstdc++-v3/include/ext/codecvt_specializations.h b/libstdc++-v3/include/ext/codecvt_specializations.h
index 82a5a7b0870..a83b747000c 100644
--- a/libstdc++-v3/include/ext/codecvt_specializations.h
+++ b/libstdc++-v3/include/ext/codecvt_specializations.h
@@ -42,8 +42,8 @@
// Define this here so codecvt.cc can have _S_max_size definition.
#define _GLIBCXX_USE_ENCODING_STATE 1
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
/// @brief Extension to use icov for dealing with character encodings.
// This includes conversions and comparisons between various character
// sets. This object encapsulates data that may need to be shared between
@@ -213,10 +213,12 @@ namespace __gnu_cxx
typedef encoding_state state_type;
typedef typename std::fpos pos_type;
};
-} // namespace __gnu_cxx
-namespace std
-{
+_GLIBCXX_END_NAMESPACE
+
+
+_GLIBCXX_BEGIN_NAMESPACE(std)
+
using __gnu_cxx::encoding_state;
/// @brief codecvt specialization.
@@ -501,5 +503,6 @@ namespace std
codecvt<_InternT, _ExternT, encoding_state>::
do_max_length() const throw()
{ return 1; }
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
diff --git a/libstdc++-v3/include/ext/debug_allocator.h b/libstdc++-v3/include/ext/debug_allocator.h
index a0187a00305..aa965074722 100644
--- a/libstdc++-v3/include/ext/debug_allocator.h
+++ b/libstdc++-v3/include/ext/debug_allocator.h
@@ -1,6 +1,6 @@
// Allocators -*- C++ -*-
-// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2003, 2004, 2005 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
@@ -50,8 +50,8 @@
#include
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
/**
* @brief A meta-allocator with debugging bits, as per [20.4].
*
@@ -120,6 +120,7 @@ namespace __gnu_cxx
throw std::runtime_error("debug_allocator::deallocate null pointer");
}
};
-} // namespace __gnu_cxx
+
+_GLIBCXX_END_NAMESPACE
#endif
diff --git a/libstdc++-v3/include/ext/functional b/libstdc++-v3/include/ext/functional
index 18132c371d1..c100f59cbd6 100644
--- a/libstdc++-v3/include/ext/functional
+++ b/libstdc++-v3/include/ext/functional
@@ -1,6 +1,6 @@
// Functional extensions -*- C++ -*-
-// Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2002, 2004, 2005 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
@@ -65,8 +65,8 @@
#include
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
using std::unary_function;
using std::binary_function;
using std::mem_fun1_t;
@@ -74,11 +74,11 @@ namespace __gnu_cxx
using std::mem_fun1_ref_t;
using std::const_mem_fun1_ref_t;
- /** The @c identity_element functions are not part of the C++ standard; SGI
- * provided them as an extension. Its argument is an operation, and its
- * return value is the identity element for that operation. It is overloaded
- * for addition and multiplication, and you can overload it for your own
- * nefarious operations.
+ /** The @c identity_element functions are not part of the C++
+ * standard; SGI provided them as an extension. Its argument is an
+ * operation, and its return value is the identity element for that
+ * operation. It is overloaded for addition and multiplication,
+ * and you can overload it for your own nefarious operations.
*
* @addtogroup SGIextensions
* @{
@@ -420,6 +420,8 @@ namespace __gnu_cxx
inline const_mem_fun1_ref_t<_Ret, _Tp, _Arg>
mem_fun1_ref(_Ret (_Tp::*__f)(_Arg) const)
{ return const_mem_fun1_ref_t<_Ret, _Tp, _Arg>(__f); }
-} // namespace __gnu_cxx
+
+_GLIBCXX_END_NAMESPACE
+
#endif
diff --git a/libstdc++-v3/include/ext/hash_fun.h b/libstdc++-v3/include/ext/hash_fun.h
index 6933fea64f9..16c04580754 100644
--- a/libstdc++-v3/include/ext/hash_fun.h
+++ b/libstdc++-v3/include/ext/hash_fun.h
@@ -1,6 +1,6 @@
// 'struct hash' from SGI -*- C++ -*-
-// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2003, 2004, 2005 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
@@ -63,8 +63,8 @@
#include
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
using std::size_t;
template
@@ -166,6 +166,7 @@ namespace __gnu_cxx
operator()(unsigned long __x) const
{ return __x; }
};
-} // namespace __gnu_cxx
+
+_GLIBCXX_END_NAMESPACE
#endif
diff --git a/libstdc++-v3/include/ext/hash_map b/libstdc++-v3/include/ext/hash_map
index 3340cc36a71..6e2b5b83081 100644
--- a/libstdc++-v3/include/ext/hash_map
+++ b/libstdc++-v3/include/ext/hash_map
@@ -64,8 +64,8 @@
#include
#include
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
using std::equal_to;
using std::allocator;
using std::pair;
@@ -438,7 +438,7 @@ namespace __gnu_cxx
end() const
{ return _M_ht.end(); }
-public:
+ public:
iterator
insert(const value_type& __obj)
{ return _M_ht.insert_equal(__obj); }
@@ -504,7 +504,7 @@ public:
size_type
elems_in_bucket(size_type __n) const
{ return _M_ht.elems_in_bucket(__n); }
-};
+ };
template
inline bool
@@ -524,13 +524,12 @@ public:
hash_multimap<_Key, _Tp, _HashFcn, _EqlKey, _Alloc>& __hm2)
{ __hm1.swap(__hm2); }
-} // namespace __gnu_cxx
+_GLIBCXX_END_NAMESPACE
-namespace std
-{
-// Specialization of insert_iterator so that it will work for hash_map
-// and hash_multimap.
+_GLIBCXX_BEGIN_NAMESPACE(std)
+ // Specialization of insert_iterator so that it will work for hash_map
+ // and hash_multimap.
template
class insert_iterator<__gnu_cxx::hash_map<_Key, _Tp, _HashFn,
_EqKey, _Alloc> >
@@ -616,7 +615,8 @@ namespace std
operator++(int)
{ return *this; }
};
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
#ifdef _GLIBCXX_DEBUG
# include
diff --git a/libstdc++-v3/include/ext/hash_set b/libstdc++-v3/include/ext/hash_set
index 1179e885aab..178fb85ab40 100644
--- a/libstdc++-v3/include/ext/hash_set
+++ b/libstdc++-v3/include/ext/hash_set
@@ -64,8 +64,8 @@
#include
#include
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
using std::equal_to;
using std::allocator;
using std::pair;
@@ -490,10 +490,10 @@ public:
hash_multiset<_Val, _HashFcn, _EqualKey, _Alloc>& __hs2)
{ __hs1.swap(__hs2); }
-} // namespace __gnu_cxx
+_GLIBCXX_END_NAMESPACE
+
+_GLIBCXX_BEGIN_NAMESPACE(std)
-namespace std
-{
// Specialization of insert_iterator so that it will work for hash_set
// and hash_multiset.
@@ -582,7 +582,8 @@ namespace std
insert_iterator<_Container>&
operator++(int) { return *this; }
};
-} // namespace std
+
+_GLIBCXX_END_NAMESPACE
#ifdef _GLIBCXX_DEBUG
# include
diff --git a/libstdc++-v3/include/ext/hashtable.h b/libstdc++-v3/include/ext/hashtable.h
index f6e3fd66c96..3706f80fc52 100644
--- a/libstdc++-v3/include/ext/hashtable.h
+++ b/libstdc++-v3/include/ext/hashtable.h
@@ -1,6 +1,6 @@
// Hashtable implementation used by containers -*- C++ -*-
-// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2003, 2004, 2005 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
@@ -70,8 +70,8 @@
#include
#include
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
using std::size_t;
using std::ptrdiff_t;
using std::forward_iterator_tag;
@@ -1125,6 +1125,7 @@ namespace __gnu_cxx
__throw_exception_again;
}
}
-} // namespace __gnu_cxx
+
+_GLIBCXX_END_NAMESPACE
#endif
diff --git a/libstdc++-v3/include/ext/iterator b/libstdc++-v3/include/ext/iterator
index e6334ad0fa2..b59e5ca3449 100644
--- a/libstdc++-v3/include/ext/iterator
+++ b/libstdc++-v3/include/ext/iterator
@@ -1,6 +1,6 @@
// HP/SGI iterator extensions -*- C++ -*-
-// Copyright (C) 2001, 2002, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2004, 2005 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
@@ -66,8 +66,8 @@
#include
#include
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
// There are two signatures for distance. In addition to the one
// taking two iterators and returning a result, there is another
// taking two iterators and a reference-to-result variable, and
@@ -111,7 +111,8 @@ namespace __gnu_cxx
// concept requirements -- taken care of in __distance
__distance(__first, __last, __n, std::__iterator_category(__first));
}
-} // namespace __gnu_cxx
+
+_GLIBCXX_END_NAMESPACE
#endif
diff --git a/libstdc++-v3/include/ext/malloc_allocator.h b/libstdc++-v3/include/ext/malloc_allocator.h
index 6d66c26d850..81435397788 100644
--- a/libstdc++-v3/include/ext/malloc_allocator.h
+++ b/libstdc++-v3/include/ext/malloc_allocator.h
@@ -1,6 +1,6 @@
// Allocator that wraps "C" malloc -*- C++ -*-
-// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2003, 2004, 2005 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
@@ -38,8 +38,8 @@
#include
#include
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
/**
* @brief An allocator that uses malloc.
*
@@ -120,6 +120,7 @@ namespace __gnu_cxx
inline bool
operator!=(const malloc_allocator<_Tp>&, const malloc_allocator<_Tp>&)
{ return false; }
-} // namespace __gnu_cxx
+
+_GLIBCXX_END_NAMESPACE
#endif
diff --git a/libstdc++-v3/include/ext/memory b/libstdc++-v3/include/ext/memory
index deb77f84ece..0755d897507 100644
--- a/libstdc++-v3/include/ext/memory
+++ b/libstdc++-v3/include/ext/memory
@@ -1,6 +1,6 @@
// Memory extensions -*- C++ -*-
-// Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2002, 2004, 2005 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
@@ -66,8 +66,8 @@
#include
#include
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
using std::ptrdiff_t;
using std::pair;
using std::__iterator_category;
@@ -192,7 +192,8 @@ namespace __gnu_cxx
/// Destroys objects and frees storage.
~temporary_buffer() { }
};
-} // namespace __gnu_cxx
+
+_GLIBCXX_END_NAMESPACE
#endif
diff --git a/libstdc++-v3/include/ext/mt_allocator.h b/libstdc++-v3/include/ext/mt_allocator.h
index 014e62a57c1..1b189c37ca6 100644
--- a/libstdc++-v3/include/ext/mt_allocator.h
+++ b/libstdc++-v3/include/ext/mt_allocator.h
@@ -40,8 +40,8 @@
#include
#include
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
typedef void (*__destroy_handler)(void*);
/// @brief Base class for pool object.
@@ -729,6 +729,7 @@ namespace __gnu_cxx
{ return false; }
#undef __thread_default
-} // namespace __gnu_cxx
+
+_GLIBCXX_END_NAMESPACE
#endif
diff --git a/libstdc++-v3/include/ext/new_allocator.h b/libstdc++-v3/include/ext/new_allocator.h
index 40122c22054..b761b0041c6 100644
--- a/libstdc++-v3/include/ext/new_allocator.h
+++ b/libstdc++-v3/include/ext/new_allocator.h
@@ -1,6 +1,6 @@
// Allocator that wraps operator new -*- C++ -*-
-// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2003, 2004, 2005 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
@@ -37,8 +37,8 @@
#include
#include
-namespace __gnu_cxx
-{
+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+
/**
* @brief An allocator that uses global new, as per [20.4].
*
@@ -116,6 +116,7 @@ namespace __gnu_cxx
inline bool
operator!=(const new_allocator<_Tp>&, const new_allocator<_Tp>&)
{ return false; }
-} // namespace __gnu_cxx
+
+_GLIBCXX_END_NAMESPACE
#endif
diff --git a/libstdc++-v3/include/ext/numeric b/libstdc++-v3/include/ext/numeric
index 0f112c2d6e1..290d032836a 100644
--- a/libstdc++-v3/include/ext/numeric
+++ b/libstdc++-v3/include/ext/numeric
@@ -1,6 +1,6 @@
// Numeric extensions -*- C++ -*-
-// Copyright (C) 2002, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2002, 2004, 2005 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
@@ -68,8 +68,8 @@
#include