aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Kosnik <bkoz@redhat.com>2012-11-05 21:01:08 +0000
committerBenjamin Kosnik <bkoz@redhat.com>2012-11-05 21:01:08 +0000
commit8d89ea1822e646d017935de6c8e6e770e42d86dd (patch)
tree0c7a8ae45a3121b750e6f40c354c4e52701d7194
parentdf382383327c5aa2cfee7df271dbbe552a081268 (diff)
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. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@193185 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--libstdc++-v3/ChangeLog7
-rw-r--r--libstdc++-v3/config/abi/pre/gnu-versioned-namespace.ver9
-rw-r--r--libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/55028-debug.cc40
3 files changed, 56 insertions, 0 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index cf5980750e1..521671b2162 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 84210e4ec0a..d13c05926fa 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 00000000000..fc17256f4bb
--- /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;
+}