diff mbox series

[committed] libstdc++: Fix test failures at -O0

Message ID 20220211221551.3383447-1-jwakely@redhat.com
State New
Headers show
Series [committed] libstdc++: Fix test failures at -O0 | expand

Commit Message

Jonathan Wakely Feb. 11, 2022, 10:15 p.m. UTC
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(+)

Comments

Hans-Peter Nilsson Feb. 13, 2022, 9:20 p.m. UTC | #1
On Fri, 11 Feb 2022, Jonathan Wakely via Gcc-patches wrote:
> 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

Isn't it a bug that you (presumably) didn't get an error for
that misspelling?  Or a diagnostic to distinguish it?  8-}

brgds, H-P
Jonathan Wakely Feb. 13, 2022, 10:15 p.m. UTC | #2
On Sun, 13 Feb 2022, 21:21 Hans-Peter Nilsson, <hp@bitrange.com> wrote:

> On Fri, 11 Feb 2022, Jonathan Wakely via Gcc-patches wrote:
> > 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
>
> Isn't it a bug that you (presumably) didn't get an error for
> that misspelling?  Or a diagnostic to distinguish it?  8-}
>


Oh! I guess I typed di then ctrl-p to complete it (a vim shortcut).

I think it should warn with -Wunknown-pragma or whatever the option is, but
we probably don't use that for the libstdc++ tests.

I'll fix that in the morning, thanks for spotting it.
diff mbox series

Patch

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.