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 <[email protected]>
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 --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)
{