diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 5edbec9d36c..ea4928f5a78 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,13 @@ +2018-10-19 Jonathan Wakely + + * 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 * 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 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) {