diff mbox series

Fix testsuite failures in Debug Mode

Message ID 20181019133715.GA3318@redhat.com
State New
Headers show
Series Fix testsuite failures in Debug Mode | expand

Commit Message

Jonathan Wakely Oct. 19, 2018, 1:37 p.m. UTC
This fixes the following testsuite failures on ia32 when compiled with
-D_GLIBCXX_DEBUG:

FAIL: 23_containers/map/modifiers/erase/dr130-linkage-check.cc
FAIL: 23_containers/multimap/modifiers/erase/dr130-linkage-check.cc
FAIL: 23_containers/multiset/modifiers/erase/dr130-linkage-check.cc
FAIL: 23_containers/set/modifiers/erase/dr130-linkage-check.cc

The normal mode containers already use the abi-tag to mangle these
overloads differently, but the debug mode versions weren't fixed.

	* include/debug/map.h (map::erase(iterator)): Add abi-tag so that
	C++11 version mangles differently from incompatible C++98 version.
	* include/debug/multimap.h (multimap::erase(iterator)): Likewise.
	* include/debug/multiset.h (multiset::erase(iterator))
	(multiset::erase(const_iterator, const_iterator)): Likewise.
	* include/debug/set.h (set::erase(iterator))
	(multiset::erase(const_iterator, const_iterator)): Likewise.

Tested x86_64-linux (with -m32) and committed to trunk.
commit 4bf815f73702a25d66a715445913a676edab3784
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Fri Oct 19 13:46:56 2018 +0100

    Fix testsuite failures in Debug Mode
    
    This fixes the following testsuite failures on ia32 when compiled with
    -D_GLIBCXX_DEBUG:
    
    FAIL: 23_containers/map/modifiers/erase/dr130-linkage-check.cc
    FAIL: 23_containers/multimap/modifiers/erase/dr130-linkage-check.cc
    FAIL: 23_containers/multiset/modifiers/erase/dr130-linkage-check.cc
    FAIL: 23_containers/set/modifiers/erase/dr130-linkage-check.cc
    
    The normal mode containers already use the abi-tag to mangle these
    overloads differently, but the debug mode versions weren't fixed.
    
            * include/debug/map.h (map::erase(iterator)): Add abi-tag so that
            C++11 version mangles differently from incompatible C++98 version.
            * include/debug/multimap.h (multimap::erase(iterator)): Likewise.
            * include/debug/multiset.h (multiset::erase(iterator))
            (multiset::erase(const_iterator, const_iterator)): Likewise.
            * include/debug/set.h (set::erase(iterator))
            (multiset::erase(const_iterator, const_iterator)): Likewise.
diff mbox series

Patch

diff --git a/libstdc++-v3/include/debug/map.h b/libstdc++-v3/include/debug/map.h
index 6821fc561e4..cb29e9ee2a5 100644
--- a/libstdc++-v3/include/debug/map.h
+++ b/libstdc++-v3/include/debug/map.h
@@ -482,6 +482,7 @@  namespace __debug
 	return { _Base::erase(__position.base()), this };
       }
 
+      _GLIBCXX_ABI_TAG_CXX11
       iterator
       erase(iterator __position)
       { return erase(const_iterator(__position)); }
diff --git a/libstdc++-v3/include/debug/multimap.h b/libstdc++-v3/include/debug/multimap.h
index d16ed47ab74..38e38c8c1ce 100644
--- a/libstdc++-v3/include/debug/multimap.h
+++ b/libstdc++-v3/include/debug/multimap.h
@@ -361,6 +361,7 @@  namespace __debug
 	return { _Base::erase(__position.base()), this };
       }
 
+      _GLIBCXX_ABI_TAG_CXX11
       iterator
       erase(iterator __position)
       { return erase(const_iterator(__position)); }
diff --git a/libstdc++-v3/include/debug/multiset.h b/libstdc++-v3/include/debug/multiset.h
index bf154ecad6e..2dd2f731627 100644
--- a/libstdc++-v3/include/debug/multiset.h
+++ b/libstdc++-v3/include/debug/multiset.h
@@ -324,6 +324,7 @@  namespace __debug
 #endif // C++17
 
 #if __cplusplus >= 201103L
+      _GLIBCXX_ABI_TAG_CXX11
       iterator
       erase(const_iterator __position)
       {
@@ -358,6 +359,7 @@  namespace __debug
       }
 
 #if __cplusplus >= 201103L
+      _GLIBCXX_ABI_TAG_CXX11
       iterator
       erase(const_iterator __first, const_iterator __last)
       {
diff --git a/libstdc++-v3/include/debug/set.h b/libstdc++-v3/include/debug/set.h
index c406fb424f4..d8dbaf268a2 100644
--- a/libstdc++-v3/include/debug/set.h
+++ b/libstdc++-v3/include/debug/set.h
@@ -338,6 +338,7 @@  namespace __debug
 #endif // C++17
 
 #if __cplusplus >= 201103L
+      _GLIBCXX_ABI_TAG_CXX11
       iterator
       erase(const_iterator __position)
       {
@@ -370,6 +371,7 @@  namespace __debug
       }
 
 #if __cplusplus >= 201103L
+      _GLIBCXX_ABI_TAG_CXX11
       iterator
       erase(const_iterator __first, const_iterator __last)
       {