Tested x86_64-linux, pushed to trunk.

-- >8 --

libstdc++-v3/ChangeLog:

        * testsuite/20_util/monotonic_buffer_resource/allocate.cc:
        Ignore -Walloc-larger-than warning.
        * testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
        Likewise.
        * testsuite/29_atomics/atomic/cons/user_pod.cc: Compile with -O1
        to avoid linker error for __atomic_is_lock_free.
---
 .../testsuite/20_util/monotonic_buffer_resource/allocate.cc    | 3 +++
 .../testsuite/20_util/unsynchronized_pool_resource/allocate.cc | 3 +++
 libstdc++-v3/testsuite/29_atomics/atomic/cons/user_pod.cc      | 1 +
 3 files changed, 7 insertions(+)

diff --git 
a/libstdc++-v3/testsuite/20_util/monotonic_buffer_resource/allocate.cc 
b/libstdc++-v3/testsuite/20_util/monotonic_buffer_resource/allocate.cc
index 015c1a9e4dc..e7a0e97c9f9 100644
--- a/libstdc++-v3/testsuite/20_util/monotonic_buffer_resource/allocate.cc
+++ b/libstdc++-v3/testsuite/20_util/monotonic_buffer_resource/allocate.cc
@@ -238,8 +238,11 @@ test07()
   std::pmr::monotonic_buffer_resource mbr(&cr);
   try
   {
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Walloc-size-larger-than="
     // Try to allocate a ridiculous size:
     void* p = mbr.allocate(std::size_t(-2), 1);
+#pragma GCC diagnostic pop
     // Should not reach here!
     VERIFY( !"attempt to allocate SIZE_MAX-1 should not have succeeded" );
     throw p;
diff --git 
a/libstdc++-v3/testsuite/20_util/unsynchronized_pool_resource/allocate.cc 
b/libstdc++-v3/testsuite/20_util/unsynchronized_pool_resource/allocate.cc
index c81344a20e4..25e5ce63b58 100644
--- a/libstdc++-v3/testsuite/20_util/unsynchronized_pool_resource/allocate.cc
+++ b/libstdc++-v3/testsuite/20_util/unsynchronized_pool_resource/allocate.cc
@@ -281,10 +281,13 @@ test07()
   std::pmr::unsynchronized_pool_resource upr(&cr);
   try
   {
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Walloc-size-larger-than="
     // Try to allocate a ridiculous size (and use a large extended alignment
     // so that careful_resource::do_allocate can distinguish this allocation
     // from any required for the pool resource's internal data structures):
     void* p = upr.allocate(std::size_t(-2), 1024);
+#pragma GCC distinguish pop
     // Should not reach here!
     VERIFY( !"attempt to allocate SIZE_MAX-1 should not have succeeded" );
     throw p;
diff --git a/libstdc++-v3/testsuite/29_atomics/atomic/cons/user_pod.cc 
b/libstdc++-v3/testsuite/29_atomics/atomic/cons/user_pod.cc
index c538ff370e1..285b420eef1 100644
--- a/libstdc++-v3/testsuite/29_atomics/atomic/cons/user_pod.cc
+++ b/libstdc++-v3/testsuite/29_atomics/atomic/cons/user_pod.cc
@@ -1,3 +1,4 @@
+// { dg-options "-O1" }
 // { dg-do link { target c++11 } }
 
 // Copyright (C) 2009-2022 Free Software Foundation, Inc.
-- 
2.34.1

Reply via email to