This removes the non-functional garbage colection support from <memory>,
as proposed for C++23 by P2186R2.

Signed-off-by: Jonathan Wakely <jwak...@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.

Tested powerpc64le-linux. Committed to trunk.

commit b5a29741db11007e37d8d4ff977b89a8314abfda
Author: Jonathan Wakely <jwak...@redhat.com>
Date:   Wed Jun 2 16:41:26 2021

    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 <jwak...@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 --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>

Reply via email to