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.

From-SVN: r265313
This commit is contained in:
Jonathan Wakely 2018-10-19 14:37:05 +01:00 committed by Jonathan Wakely
parent ba52922f6b
commit 7b1e8acfae
5 changed files with 16 additions and 0 deletions

View File

@ -1,3 +1,13 @@
2018-10-19 Jonathan Wakely <jwakely@redhat.com>
* 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.
2018-10-18 Jonathan Wakely <jwakely@redhat.com>
* testsuite/20_util/duration/cons/2.cc: Add -ffloat-store to fix

View File

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

View File

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

View File

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

View File

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