|
|
e88ed2 |
From fa770c25013df537c41d0929c4202b0a774a6a75 Mon Sep 17 00:00:00 2001
|
|
|
e88ed2 |
From: David Malcolm <dmalcolm@redhat.com>
|
|
|
e88ed2 |
Date: Thu, 2 Sep 2021 15:27:59 -0400
|
|
|
e88ed2 |
Subject: [PATCH 14/17] Conditionalize tests for PR libstdc++/98466 on
|
|
|
e88ed2 |
__LIBSTDCXX_SO_VERSION >= 11
|
|
|
e88ed2 |
|
|
|
e88ed2 |
The tests:
|
|
|
e88ed2 |
23_containers/deque/debug/98466.cc
|
|
|
e88ed2 |
23_containers/unordered_map/debug/98466.cc
|
|
|
e88ed2 |
were added upstream 2021-01-01 as part of:
|
|
|
e88ed2 |
libstdc++: Implement N3644 for _GLIBCXX_DEBUG iterators
|
|
|
e88ed2 |
https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=05a30af3f237984b4dcf1dbbc17fdac583c46506
|
|
|
e88ed2 |
but fail when run in DTS against a system libstdc++.so
|
|
|
e88ed2 |
from an older GCC.
|
|
|
e88ed2 |
|
|
|
e88ed2 |
In particular, they use the older implementation of _M_can_compare from
|
|
|
e88ed2 |
the dynamic library:
|
|
|
e88ed2 |
|
|
|
e88ed2 |
$ eu-readelf -s 98466.exe | grep can_compare | c++filt
|
|
|
e88ed2 |
11: 0000000000000000 0 FUNC GLOBAL DEFAULT UNDEF __gnu_debug::_Safe_iterator_base::_M_can_compare(__gnu_debug::_Safe_iterator_base const&) const@GLIBCXX_3.4 (4)
|
|
|
e88ed2 |
157: 0000000000000000 0 FUNC GLOBAL DEFAULT UNDEF __gnu_debug::_Safe_iterator_base::_M_can_compare(__gnu_debug::_Safe_iterator_base const&) const@@GLIBCXX_3.4
|
|
|
e88ed2 |
---
|
|
|
e88ed2 |
.../testsuite/23_containers/deque/debug/98466.cc | 6 ++++++
|
|
|
e88ed2 |
.../23_containers/unordered_map/debug/98466.cc | 12 ++++++++++++
|
|
|
e88ed2 |
2 files changed, 18 insertions(+)
|
|
|
e88ed2 |
|
|
|
e88ed2 |
diff --git a/libstdc++-v3/testsuite/23_containers/deque/debug/98466.cc b/libstdc++-v3/testsuite/23_containers/deque/debug/98466.cc
|
|
|
e88ed2 |
index c2d793374..e92d719bf 100644
|
|
|
e88ed2 |
--- a/libstdc++-v3/testsuite/23_containers/deque/debug/98466.cc
|
|
|
e88ed2 |
+++ b/libstdc++-v3/testsuite/23_containers/deque/debug/98466.cc
|
|
|
e88ed2 |
@@ -26,11 +26,17 @@ void test01()
|
|
|
e88ed2 |
{
|
|
|
e88ed2 |
typedef typename __gnu_debug::deque<int>::iterator It;
|
|
|
e88ed2 |
It it = It();
|
|
|
e88ed2 |
+ // Fixed upstream in GCC 11
|
|
|
e88ed2 |
+#if __LIBSTDCXX_SO_VERSION >= 11
|
|
|
e88ed2 |
VERIFY( it == it );
|
|
|
e88ed2 |
+#endif
|
|
|
e88ed2 |
|
|
|
e88ed2 |
typedef typename __gnu_debug::deque<int>::const_iterator Cit;
|
|
|
e88ed2 |
Cit cit = Cit();
|
|
|
e88ed2 |
+ // Fixed upstream in GCC 11
|
|
|
e88ed2 |
+#if __LIBSTDCXX_SO_VERSION >= 11
|
|
|
e88ed2 |
VERIFY( cit == cit );
|
|
|
e88ed2 |
+#endif
|
|
|
e88ed2 |
}
|
|
|
e88ed2 |
|
|
|
e88ed2 |
int main()
|
|
|
e88ed2 |
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_map/debug/98466.cc b/libstdc++-v3/testsuite/23_containers/unordered_map/debug/98466.cc
|
|
|
e88ed2 |
index cc22b9ff8..3a1b6cd32 100644
|
|
|
e88ed2 |
--- a/libstdc++-v3/testsuite/23_containers/unordered_map/debug/98466.cc
|
|
|
e88ed2 |
+++ b/libstdc++-v3/testsuite/23_containers/unordered_map/debug/98466.cc
|
|
|
e88ed2 |
@@ -25,16 +25,28 @@
|
|
|
e88ed2 |
void test01()
|
|
|
e88ed2 |
{
|
|
|
e88ed2 |
__gnu_debug::unordered_map<int, int>::iterator it{};
|
|
|
e88ed2 |
+ // Fixed upstream in GCC 11
|
|
|
e88ed2 |
+#if __LIBSTDCXX_SO_VERSION >= 11
|
|
|
e88ed2 |
VERIFY( it == it );
|
|
|
e88ed2 |
+#endif
|
|
|
e88ed2 |
|
|
|
e88ed2 |
__gnu_debug::unordered_map<int, int>::const_iterator cit{};
|
|
|
e88ed2 |
+ // Fixed upstream in GCC 11
|
|
|
e88ed2 |
+#if __LIBSTDCXX_SO_VERSION >= 11
|
|
|
e88ed2 |
VERIFY( cit == cit );
|
|
|
e88ed2 |
+#endif
|
|
|
e88ed2 |
|
|
|
e88ed2 |
__gnu_debug::unordered_map<int, int>::local_iterator lit{};
|
|
|
e88ed2 |
+ // Fixed upstream in GCC 11
|
|
|
e88ed2 |
+#if __LIBSTDCXX_SO_VERSION >= 11
|
|
|
e88ed2 |
VERIFY( lit == lit );
|
|
|
e88ed2 |
+#endif
|
|
|
e88ed2 |
|
|
|
e88ed2 |
__gnu_debug::unordered_map<int, int>::const_local_iterator clit{};
|
|
|
e88ed2 |
+ // Fixed upstream in GCC 11
|
|
|
e88ed2 |
+#if __LIBSTDCXX_SO_VERSION >= 11
|
|
|
e88ed2 |
VERIFY( clit == clit );
|
|
|
e88ed2 |
+#endif
|
|
|
e88ed2 |
}
|
|
|
e88ed2 |
|
|
|
e88ed2 |
int main()
|
|
|
e88ed2 |
--
|
|
|
e88ed2 |
2.31.1
|
|
|
e88ed2 |
|