From: Jonathan Wakely Date: Tue, 29 Jan 2019 00:47:32 +0000 (+0000) Subject: Fix tests that fail in C++2a mode X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=2104ca71da1120a7b2b35e3178624b04d30bdfde;p=gcc.git Fix tests that fail in C++2a mode The nested typedefs in std::reference_wrapper are no longer present in C++2a mode, so skip the tests that check for them. The addition of the [[nodiscard]] attribute to a few functions causes some failures in tests that intentionally ignore the return value. Casting the result to void suppresses the new warnings. * testsuite/20_util/reference_wrapper/result_type.cc: Disable for C++2a. * testsuite/20_util/reference_wrapper/typedefs-2.cc: Likewise. * testsuite/20_util/reference_wrapper/typedefs-3.cc: Likewise. * testsuite/20_util/reference_wrapper/typedefs.cc: Likewise. * testsuite/30_threads/async/54297.cc: Suppress nodiscard warning. * testsuite/ext/array_allocator/26875.cc: Likewise. * testsuite/ext/pool_allocator/allocate_chunk.cc: Likewise. * testsuite/util/replacement_memory_operators.h: Likewise. * testsuite/util/testsuite_allocator.h: Likewise. From-SVN: r268355 --- diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 30038524ec3..fc6f7d1a210 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,5 +1,16 @@ 2019-01-29 Jonathan Wakely + * testsuite/20_util/reference_wrapper/result_type.cc: Disable for + C++2a. + * testsuite/20_util/reference_wrapper/typedefs-2.cc: Likewise. + * testsuite/20_util/reference_wrapper/typedefs-3.cc: Likewise. + * testsuite/20_util/reference_wrapper/typedefs.cc: Likewise. + * testsuite/30_threads/async/54297.cc: Suppress nodiscard warning. + * testsuite/ext/array_allocator/26875.cc: Likewise. + * testsuite/ext/pool_allocator/allocate_chunk.cc: Likewise. + * testsuite/util/replacement_memory_operators.h: Likewise. + * testsuite/util/testsuite_allocator.h: Likewise. + * include/std/memory_resource (__pool_resource::_M_unpooled): Use normal mode vector, even for debug mode. * include/std/vector [_GLIBCXX_DEBUG] (_GLIBCXX_STD_C::pmr::vector): diff --git a/libstdc++-v3/testsuite/20_util/reference_wrapper/result_type.cc b/libstdc++-v3/testsuite/20_util/reference_wrapper/result_type.cc index 81b4986fb41..7c67283d2b9 100644 --- a/libstdc++-v3/testsuite/20_util/reference_wrapper/result_type.cc +++ b/libstdc++-v3/testsuite/20_util/reference_wrapper/result_type.cc @@ -1,4 +1,5 @@ // { dg-do compile { target c++11 } } +// { dg-skip-if "result_type removed for C++20" { c++2a } } // 2010-10-06 Paolo Carlini diff --git a/libstdc++-v3/testsuite/20_util/reference_wrapper/typedefs-2.cc b/libstdc++-v3/testsuite/20_util/reference_wrapper/typedefs-2.cc index 5db372c82ba..e1aebd17352 100644 --- a/libstdc++-v3/testsuite/20_util/reference_wrapper/typedefs-2.cc +++ b/libstdc++-v3/testsuite/20_util/reference_wrapper/typedefs-2.cc @@ -1,4 +1,5 @@ // { dg-do compile { target c++11 } } +// { dg-skip-if "argument_type removed for C++20" { c++2a } } // 2010-10-06 Paolo Carlini diff --git a/libstdc++-v3/testsuite/20_util/reference_wrapper/typedefs-3.cc b/libstdc++-v3/testsuite/20_util/reference_wrapper/typedefs-3.cc index 190fe91c13e..5ca596a10bc 100644 --- a/libstdc++-v3/testsuite/20_util/reference_wrapper/typedefs-3.cc +++ b/libstdc++-v3/testsuite/20_util/reference_wrapper/typedefs-3.cc @@ -1,4 +1,5 @@ // { dg-do compile { target c++11 } } +// { dg-skip-if "argument_type removed for C++20" { c++2a } } // Copyright (C) 2011-2019 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/20_util/reference_wrapper/typedefs.cc b/libstdc++-v3/testsuite/20_util/reference_wrapper/typedefs.cc index a17c1ede0a9..1f4c77eb006 100644 --- a/libstdc++-v3/testsuite/20_util/reference_wrapper/typedefs.cc +++ b/libstdc++-v3/testsuite/20_util/reference_wrapper/typedefs.cc @@ -1,4 +1,5 @@ // { dg-do compile { target c++11 } } +// { dg-skip-if "result_type removed for C++20" { c++2a } } // Copyright (C) 2008-2019 Free Software Foundation, Inc. // diff --git a/libstdc++-v3/testsuite/30_threads/async/54297.cc b/libstdc++-v3/testsuite/30_threads/async/54297.cc index 4a2d8fca698..654ce40f904 100644 --- a/libstdc++-v3/testsuite/30_threads/async/54297.cc +++ b/libstdc++-v3/testsuite/30_threads/async/54297.cc @@ -45,5 +45,5 @@ struct Task int main() { - std::async(std::launch::async, Task()); + (void) std::async(std::launch::async, Task()); } diff --git a/libstdc++-v3/testsuite/ext/array_allocator/26875.cc b/libstdc++-v3/testsuite/ext/array_allocator/26875.cc index d4cbb04d680..e72e3b2e0ef 100644 --- a/libstdc++-v3/testsuite/ext/array_allocator/26875.cc +++ b/libstdc++-v3/testsuite/ext/array_allocator/26875.cc @@ -33,8 +33,8 @@ int main() try { - Allocator1.allocate(1); - Allocator2.allocate(1); + (void) Allocator1.allocate(1); + (void) Allocator2.allocate(1); } catch (std::bad_alloc& ex) { diff --git a/libstdc++-v3/testsuite/ext/pool_allocator/allocate_chunk.cc b/libstdc++-v3/testsuite/ext/pool_allocator/allocate_chunk.cc index 1c958d6700c..b90778c51d4 100644 --- a/libstdc++-v3/testsuite/ext/pool_allocator/allocate_chunk.cc +++ b/libstdc++-v3/testsuite/ext/pool_allocator/allocate_chunk.cc @@ -48,13 +48,13 @@ void test01() using __gnu_cxx::__pool_alloc; __pool_alloc alloc_big; - alloc_big.allocate(1); + (void) alloc_big.allocate(1); // The constant 20 comes from __pool_alloc_base::_M_refill. See // also __pool_alloc_base::_M_allocate_chunk. __pool_alloc alloc_small; for (unsigned int i = 0; i < 20 * sizeof(big) / sizeof(small) + 1; ++i) - alloc_small.allocate(1); + (void) alloc_small.allocate(1); } int main() diff --git a/libstdc++-v3/testsuite/util/replacement_memory_operators.h b/libstdc++-v3/testsuite/util/replacement_memory_operators.h index 9befe273140..fb0b2be7dcf 100644 --- a/libstdc++-v3/testsuite/util/replacement_memory_operators.h +++ b/libstdc++-v3/testsuite/util/replacement_memory_operators.h @@ -64,7 +64,7 @@ namespace __gnu_test check_new(Alloc a = Alloc()) { __gnu_test::counter::exceptions(false); - a.allocate(10); + (void) a.allocate(10); const bool __b((__gnu_test::counter::count() > 0) == uses_global_new); if (!__b) throw std::logic_error("counter not incremented"); diff --git a/libstdc++-v3/testsuite/util/testsuite_allocator.h b/libstdc++-v3/testsuite/util/testsuite_allocator.h index 0e77ff49a3a..044b9d5a90f 100644 --- a/libstdc++-v3/testsuite/util/testsuite_allocator.h +++ b/libstdc++-v3/testsuite/util/testsuite_allocator.h @@ -245,7 +245,7 @@ namespace __gnu_test Alloc a; try { - a.allocate(a.max_size() + 1); + (void) a.allocate(a.max_size() + 1); } catch(std::bad_alloc&) {