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
This commit is contained in:
Benjamin Kosnik 2012-11-05 21:01:08 +00:00 committed by Benjamin Kosnik
parent 51bf1e805e
commit 684592672f
3 changed files with 56 additions and 0 deletions

View File

@ -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

View File

@ -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_;

View File

@ -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;
}