From 9b690d8cc39a3dc6d78dde98ac2e339182bb798d Mon Sep 17 00:00:00 2001 From: Benjamin Kosnik Date: Thu, 20 Jan 2011 20:04:25 +0000 Subject: [PATCH] PR libstdc++/36104 part three 2011-01-20 Benjamin Kosnik PR libstdc++/36104 part three * src/hashtable_c++0x.cc: Adjust namespace macros. * testsuite/util/testsuite_rvalref.h: Don't forward declare hash. * config/abi/pre/gnu-versioned-namespace.ver: Update. From-SVN: r169063 --- libstdc++-v3/ChangeLog | 7 ++ .../abi/pre/gnu-versioned-namespace.ver | 105 ++++++++++++++---- libstdc++-v3/src/hashtable_c++0x.cc | 11 +- .../testsuite/util/testsuite_rvalref.h | 9 +- 4 files changed, 106 insertions(+), 26 deletions(-) diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 1fdfa915d23..5de3330bc79 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,10 @@ +2011-01-20 Benjamin Kosnik + + PR libstdc++/36104 part three + * src/hashtable_c++0x.cc: Adjust namespace macros. + * testsuite/util/testsuite_rvalref.h: Don't forward declare hash. + * config/abi/pre/gnu-versioned-namespace.ver: Update. + 2011-01-20 Benjamin Kosnik * include/ext/pb_ds/detail/resize_policy/ diff --git a/libstdc++-v3/config/abi/pre/gnu-versioned-namespace.ver b/libstdc++-v3/config/abi/pre/gnu-versioned-namespace.ver index be4c5895914..dfb1345b0ce 100644 --- a/libstdc++-v3/config/abi/pre/gnu-versioned-namespace.ver +++ b/libstdc++-v3/config/abi/pre/gnu-versioned-namespace.ver @@ -1,6 +1,7 @@ ## Linker script for GNU namespace versioning. ## -## Copyright (C) 2002, 2003, 2004, 2005, 2007, 2009 Free Software Foundation, Inc. +## Copyright (C) 2002, 2003, 2004, 2005, 2007, 2009, 2011 +## Free Software Foundation, Inc. ## ## This file is part of the libstdc++ version 3 distribution. ## @@ -19,7 +20,7 @@ ## with this library; see the file COPYING3. If not see ## . -GLIBCXX_3.7 { +GLIBCXX_5.0 { global: @@ -30,6 +31,15 @@ GLIBCXX_3.7 { std::* }; + # locale + _ZNSt2_69has_facetINS_*; + + # hash + _ZNSt2_68__detail12__prime_listE; + + # thread/mutex/condition_variable/future + __once_proxy; + # operator new(size_t) _Znw[jm]; # operator new(size_t, std::nothrow_t const&) @@ -87,7 +97,12 @@ GLIBCXX_3.7 { _ZN9__gnu_cxx2_69free_list6_M_getE[jm]; _ZN9__gnu_cxx2_69free_list8_M_clearEv; + # __gnu_cxx::stdio_sync_filebuf + _ZTVN9__gnu_cxx2_618stdio_sync_filebufI[cw]St2_611char_traitsI[cw]EEE; + _ZN9__gnu_cxx2_618stdio_sync_filebufI[cw]NSt2_611char_traitsI[cw]EEE[5-9]*; + # debug mode +# xxx cxx1998? _ZN10__gnu_norm15_List_node_base4hook*; _ZN10__gnu_norm15_List_node_base4swap*; _ZN10__gnu_norm15_List_node_base6unhookEv; @@ -106,8 +121,8 @@ GLIBCXX_3.7 { _ZN11__gnu_debug19_Safe_sequence_base22_M_revalidate_singularEv; _ZN11__gnu_debug19_Safe_sequence_base7_M_swapERS0_; - _ZN11__gnu_debug19_Safe_iterator_base9_M_attachEPNS_19_Safe_sequence_baseEb; - _ZN11__gnu_debug19_Safe_iterator_base16_M_attach_singleEPNS_19_Safe_sequence_baseEb; + _ZN11__gnu_debug19_Safe_iterator_base9_M_attach*; + _ZN11__gnu_debug19_Safe_iterator_base16_M_attach_single*; _ZN11__gnu_debug19_Safe_iterator_base9_M_detachEv; _ZN11__gnu_debug19_Safe_iterator_base16_M_detach_singleEv; _ZN11__gnu_debug19_Safe_iterator_base12_M_get_mutexEv; @@ -127,7 +142,7 @@ GLIBCXX_3.7 { # Symbols in the support library (libsupc++) have their own tag. -CXXABI_1.7 { +CXXABI_2.0 { global: __cxa_allocate_exception; @@ -165,6 +180,41 @@ CXXABI_1.7 { __gxx_personality_sj0; __dynamic_cast; + # std::exception_ptr + _ZNSt15__exception_ptr13exception_ptrC1Ev; + _ZNSt15__exception_ptr13exception_ptrC2Ev; + _ZNSt15__exception_ptr13exception_ptrC1ERKS0_; + _ZNSt15__exception_ptr13exception_ptrC2ERKS0_; + _ZNSt15__exception_ptr13exception_ptrC1EMS0_FvvE; + _ZNSt15__exception_ptr13exception_ptrC2EMS0_FvvE; + _ZNSt15__exception_ptr13exception_ptrD1Ev; + _ZNSt15__exception_ptr13exception_ptrD2Ev; + _ZNSt15__exception_ptr13exception_ptraSERKS0_; + _ZNKSt15__exception_ptr13exception_ptrcvMS0_FvvEEv; + _ZNKSt15__exception_ptr13exception_ptrntEv; + _ZNKSt15__exception_ptr13exception_ptr20__cxa_exception_typeEv; + _ZNSt15__exception_ptr13exception_ptr4swapERS0_; + _ZNSt15__exception_ptreqERKNS_13exception_ptrES2_; + _ZNSt15__exception_ptrneERKNS_13exception_ptrES2_; + + _ZSt17current_exceptionv; + _ZSt17rethrow_exceptionNSt15__exception_ptr13exception_ptrE; + + # std::bad_function_call. + _ZNSt17bad_function_callD*; + _ZTISt17bad_function_call; + _ZTSSt17bad_function_call; + _ZTVSt17bad_function_call; + + # Default function. + _ZSt11_Hash_bytesPKv*; + + # FNV hash. + _ZSt15_Fnv_hash_bytesPKv*; + + # __gnu_cxx::_verbose_terminate_handler() + _ZN9__gnu_cxx2_627__verbose_terminate_handlerEv; + # *_type_info classes, ctor and dtor _ZN10__cxxabiv117__array_type_info*; _ZN10__cxxabiv117__class_type_info*; @@ -186,18 +236,6 @@ CXXABI_1.7 { _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 _ZTI[a-z]; _ZTIP[a-z]; @@ -214,6 +252,8 @@ CXXABI_1.7 { _ZTIN10__cxxabiv121__vmi_class_type_infoE; _ZTIN10__cxxabiv115__forced_unwindE; _ZTIN10__cxxabiv119__foreign_exceptionE; + _ZTIN10__cxxabiv115__forced_unwindE; + _ZTIN10__cxxabiv119__foreign_exceptionE; # typeinfo name _ZTS[a-z]; @@ -230,8 +270,35 @@ CXXABI_1.7 { _ZTSN10__cxxabiv120__si_class_type_infoE; _ZTSN10__cxxabiv121__vmi_class_type_infoE; - # __gnu_cxx::_verbose_terminate_handler() - _ZN9__gnu_cxx2_627__verbose_terminate_handlerEv; + # typeinfo for char16_t and char32_t + _ZTIDs; + _ZTIPDs; + _ZTIPKDs; + _ZTIDi; + _ZTIPDi; + _ZTIPKDi; + + # typeinfo for decimal floating point types + _ZTID[fde]; + _ZTIPD[fde]; + _ZTIPKD[fde]; + + # typeinfo for decltype(nullptr) + _ZTIDn; + _ZTIPDn; + _ZTIPKDn; + + # 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; local: *; diff --git a/libstdc++-v3/src/hashtable_c++0x.cc b/libstdc++-v3/src/hashtable_c++0x.cc index c99a094c046..0b5f79cc6f1 100644 --- a/libstdc++-v3/src/hashtable_c++0x.cc +++ b/libstdc++-v3/src/hashtable_c++0x.cc @@ -1,6 +1,6 @@ // std::__detail definitions -*- C++ -*- -// Copyright (C) 2007, 2008, 2009, 2010 Free Software Foundation, Inc. +// Copyright (C) 2007, 2008, 2009, 2010, 2011 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 @@ -22,11 +22,14 @@ // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see // . +#include + #ifndef __GXX_EXPERIMENTAL_CXX0X__ # error "hashtable_c++0x.cc must be compiled with -std=gnu++0x" #endif -namespace std -{ +_GLIBCXX_BEGIN_NAMESPACE(std) + #include "hashtable-aux.cc" -} + +_GLIBCXX_END_NAMESPACE // namespace std diff --git a/libstdc++-v3/testsuite/util/testsuite_rvalref.h b/libstdc++-v3/testsuite/util/testsuite_rvalref.h index 5610b77cc43..acf25da503a 100644 --- a/libstdc++-v3/testsuite/util/testsuite_rvalref.h +++ b/libstdc++-v3/testsuite/util/testsuite_rvalref.h @@ -1,7 +1,7 @@ // -*- C++ -*- // Testing utilities for the rvalue reference. // -// Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 +// Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011 // Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free @@ -174,10 +174,12 @@ namespace __gnu_test } // namespace __gnu_test +#ifdef __GXX_EXPERIMENTAL_CXX0X__ + +#include + namespace std { - template struct hash; - /// std::hash specialization for type_index. template<> struct hash<__gnu_test::rvalstruct> @@ -190,5 +192,6 @@ namespace std { return __rvs.val; } }; } +#endif #endif // _GLIBCXX_TESTSUITE_TR1_H