diff options
author | Benjamin Kosnik <bkoz@redhat.com> | 2012-11-05 21:01:08 +0000 |
---|---|---|
committer | Benjamin Kosnik <bkoz@gcc.gnu.org> | 2012-11-05 21:01:08 +0000 |
commit | 684592672f5aa8383f6985a33af99c73afc49292 (patch) | |
tree | 0c7a8ae45a3121b750e6f40c354c4e52701d7194 /libstdc++-v3 | |
parent | 51bf1e805efe9f8012c8580121dbf68dd9e8d0dc (diff) | |
download | gcc-684592672f5aa8383f6985a33af99c73afc49292.zip gcc-684592672f5aa8383f6985a33af99c73afc49292.tar.gz gcc-684592672f5aa8383f6985a33af99c73afc49292.tar.bz2 |
re PR libstdc++/55028 (_GLIBCXX_DEBUG is broken when using v7 namespace)
2012-11-05 Benjamin Kosnik <bkoz@redhat.com>
Oleg Smolsky <oleg@smolsky.net>
PR libstdc++/55028
* config/abi/pre/gnu-versioned-namespace.ver: Add symbols.
* testsuite/23_containers/unordered_multimap/insert/55028-debug.cc: New.
Co-Authored-By: Oleg Smolsky <oleg@smolsky.net>
From-SVN: r193185
Diffstat (limited to 'libstdc++-v3')
-rw-r--r-- | libstdc++-v3/ChangeLog | 7 | ||||
-rw-r--r-- | libstdc++-v3/config/abi/pre/gnu-versioned-namespace.ver | 9 | ||||
-rw-r--r-- | libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/55028-debug.cc | 40 |
3 files changed, 56 insertions, 0 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index cf59807..521671b 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,10 @@ +2012-11-05 Benjamin Kosnik <bkoz@redhat.com> + Oleg Smolsky <oleg@smolsky.net> + + PR libstdc++/55028 + * config/abi/pre/gnu-versioned-namespace.ver: Add symbols. + * testsuite/23_containers/unordered_multimap/insert/55028-debug.cc: New. + 2012-10-05 François Dumont <fdumont@gcc.gnu.org> * include/ext/throw_allocator.h (__throw_value_base): Add move diff --git a/libstdc++-v3/config/abi/pre/gnu-versioned-namespace.ver b/libstdc++-v3/config/abi/pre/gnu-versioned-namespace.ver index 84210e4..d13c059 100644 --- a/libstdc++-v3/config/abi/pre/gnu-versioned-namespace.ver +++ b/libstdc++-v3/config/abi/pre/gnu-versioned-namespace.ver @@ -64,6 +64,7 @@ GLIBCXX_7.0 { # vtable _ZTVSt*; _ZTVNSt*; + _ZTVN9__gnu_cxx3__718stdio_sync_filebufI[cw]NSt3__711char_traitsI[cw]EEEE; # thunk _ZTv0_n24_NS*; @@ -145,6 +146,14 @@ GLIBCXX_7.0 { _ZNK11__gnu_debug16_Error_formatter8_M_error*; _ZNK11__gnu_debug16_Error_formatter17_M_get_max_lengthEv; + # __gnu_debug::_Safe_unordered_container_base + # __gnu_debug::_Safe_local_iterator_base + _ZN11__gnu_debug30_Safe_unordered_container_base7_M_swapERS0_; + _ZN11__gnu_debug30_Safe_unordered_container_base13_M_detach_allEv; + _ZN11__gnu_debug25_Safe_local_iterator_base9_M_attachEPNS_19_Safe_sequence_baseEb; + _ZN11__gnu_debug25_Safe_local_iterator_base9_M_detachEv; + + # parallel mode _ZN14__gnu_parallel9_Settings3getEv; _ZN14__gnu_parallel9_Settings3setERS0_; diff --git a/libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/55028-debug.cc b/libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/55028-debug.cc new file mode 100644 index 0000000..fc17256 --- /dev/null +++ b/libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/55028-debug.cc @@ -0,0 +1,40 @@ +// { dg-options "-std=gnu++0x -D_GLIBCXX_DEBUG" } +// +// Copyright (C) 2012 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 3, or (at your option) +// any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING3. If not see +// <http://www.gnu.org/licenses/>. + +// libstdc++/55028 +#include <string> +#include <unordered_map> +#include <testsuite_hooks.h> + +struct MyType +{ }; + +void test() +{ + // using MyMap = std::multimap<std::string, MyType *>; // works + using MyMap = std::unordered_multimap<std::string, MyType*>; // fails to link + MyMap m; + m.insert(std::make_pair(std::string("blah"), new MyType)); +} + +int main() +{ + test(); + return 0; +} |