aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Wakely <jwakely@redhat.com>2018-10-19 14:37:05 +0100
committerJonathan Wakely <redi@gcc.gnu.org>2018-10-19 14:37:05 +0100
commit7b1e8acfae2c1b4ee3c2199879783d2189ca3d0f (patch)
tree6b57674d635736fb60e9f720a05bd117ddc111d4
parentba52922f6bcf2cb3f503ff6443be7b049ae190e5 (diff)
downloadgcc-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/ChangeLog10
-rw-r--r--libstdc++-v3/include/debug/map.h1
-rw-r--r--libstdc++-v3/include/debug/multimap.h1
-rw-r--r--libstdc++-v3/include/debug/multiset.h2
-rw-r--r--libstdc++-v3/include/debug/set.h2
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)
{