[gcc r12-1735] libstdc++: Remove garbage collection support for C++23 [P2186R2]

Jonathan Wakely redi@gcc.gnu.org
Tue Jun 22 20:29:51 GMT 2021


https://gcc.gnu.org/g:b5a29741db11007e37d8d4ff977b89a8314abfda

commit r12-1735-gb5a29741db11007e37d8d4ff977b89a8314abfda
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Wed Jun 2 16:41:26 2021 +0100

    libstdc++: Remove garbage collection support for C++23 [P2186R2]
    
    This removes the non-functional garbage colection support from <memory>,
    as proposed for C++23 by P2186R2.
    
    Signed-off-by: Jonathan Wakely <jwakely@redhat.com>
    
    libstdc++-v3/ChangeLog:
    
            * include/std/memory (declare_reachable, undeclare_reachable)
            (declare_no_pointers, undeclare_no_pointers, get_pointer_safety)
            (pointer_safety): Only define for C++11 to C++20 inclusive.
            * testsuite/20_util/pointer_safety/1.cc: Do not run for C++23.

Diff:
---
 libstdc++-v3/include/std/memory                    | 4 ++--
 libstdc++-v3/testsuite/20_util/pointer_safety/1.cc | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/libstdc++-v3/include/std/memory b/libstdc++-v3/include/std/memory
index f19de275b2b..da64be2471a 100644
--- a/libstdc++-v3/include/std/memory
+++ b/libstdc++-v3/include/std/memory
@@ -87,7 +87,7 @@
 #  include <bits/uses_allocator_args.h>
 #endif
 
-#if __cplusplus >= 201103L
+#if __cplusplus >= 201103L && __cplusplus <= 202002L
 namespace std _GLIBCXX_VISIBILITY(default)
 {
 _GLIBCXX_BEGIN_NAMESPACE_VERSION
@@ -132,7 +132,7 @@ get_pointer_safety() noexcept { return pointer_safety::relaxed; }
 
 _GLIBCXX_END_NAMESPACE_VERSION
 } // namespace
-#endif // C++11
+#endif // C++11 to C++20
 
 #if __cplusplus >= 201703L
 // Parallel STL algorithms
diff --git a/libstdc++-v3/testsuite/20_util/pointer_safety/1.cc b/libstdc++-v3/testsuite/20_util/pointer_safety/1.cc
index 7d9a425e3e7..bfacbce27d2 100644
--- a/libstdc++-v3/testsuite/20_util/pointer_safety/1.cc
+++ b/libstdc++-v3/testsuite/20_util/pointer_safety/1.cc
@@ -15,7 +15,7 @@
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 
-// { dg-do run { target c++11 } }
+// { dg-do run { target { c++11 && { ! c++23 } } } }
 
 #include <memory>
 #include <testsuite_hooks.h>


More information about the Libstdc++-cvs mailing list