diff options
author | Jonathan Wakely <jwakely@redhat.com> | 2018-10-19 14:37:05 +0100 |
---|---|---|
committer | Jonathan Wakely <redi@gcc.gnu.org> | 2018-10-19 14:37:05 +0100 |
commit | 7b1e8acfae2c1b4ee3c2199879783d2189ca3d0f (patch) | |
tree | 6b57674d635736fb60e9f720a05bd117ddc111d4 | |
parent | ba52922f6bcf2cb3f503ff6443be7b049ae190e5 (diff) | |
download | gcc-7b1e8acfae2c1b4ee3c2199879783d2189ca3d0f.zip gcc-7b1e8acfae2c1b4ee3c2199879783d2189ca3d0f.tar.gz gcc-7b1e8acfae2c1b4ee3c2199879783d2189ca3d0f.tar.bz2 |
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
-rw-r--r-- | libstdc++-v3/ChangeLog | 10 | ||||
-rw-r--r-- | libstdc++-v3/include/debug/map.h | 1 | ||||
-rw-r--r-- | libstdc++-v3/include/debug/multimap.h | 1 | ||||
-rw-r--r-- | libstdc++-v3/include/debug/multiset.h | 2 | ||||
-rw-r--r-- | libstdc++-v3/include/debug/set.h | 2 |
5 files changed, 16 insertions, 0 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 5edbec9..ea4928f 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -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 diff --git a/libstdc++-v3/include/debug/map.h b/libstdc++-v3/include/debug/map.h index 6821fc5..cb29e9e 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 d16ed47..38e38c8 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 bf154ec..2dd2f73 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 c406fb4..d8dbaf2 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) { |