Commit 2104ca71 by Jonathan Wakely Committed by Jonathan Wakely

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
parent 1f48525d
2019-01-29 Jonathan Wakely <jwakely@redhat.com> 2019-01-29 Jonathan Wakely <jwakely@redhat.com>
* 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 * include/std/memory_resource (__pool_resource::_M_unpooled): Use
normal mode vector, even for debug mode. normal mode vector, even for debug mode.
* include/std/vector [_GLIBCXX_DEBUG] (_GLIBCXX_STD_C::pmr::vector): * include/std/vector [_GLIBCXX_DEBUG] (_GLIBCXX_STD_C::pmr::vector):
......
// { dg-do compile { target c++11 } } // { dg-do compile { target c++11 } }
// { dg-skip-if "result_type removed for C++20" { c++2a } }
// 2010-10-06 Paolo Carlini <paolo.carlini@oracle.com> // 2010-10-06 Paolo Carlini <paolo.carlini@oracle.com>
......
// { dg-do compile { target c++11 } } // { dg-do compile { target c++11 } }
// { dg-skip-if "argument_type removed for C++20" { c++2a } }
// 2010-10-06 Paolo Carlini <paolo.carlini@oracle.com> // 2010-10-06 Paolo Carlini <paolo.carlini@oracle.com>
......
// { dg-do compile { target c++11 } } // { 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. // Copyright (C) 2011-2019 Free Software Foundation, Inc.
// //
......
// { dg-do compile { target c++11 } } // { 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. // Copyright (C) 2008-2019 Free Software Foundation, Inc.
// //
......
...@@ -45,5 +45,5 @@ struct Task ...@@ -45,5 +45,5 @@ struct Task
int main() int main()
{ {
std::async(std::launch::async, Task()); (void) std::async(std::launch::async, Task());
} }
...@@ -33,8 +33,8 @@ int main() ...@@ -33,8 +33,8 @@ int main()
try try
{ {
Allocator1.allocate(1); (void) Allocator1.allocate(1);
Allocator2.allocate(1); (void) Allocator2.allocate(1);
} }
catch (std::bad_alloc& ex) catch (std::bad_alloc& ex)
{ {
......
...@@ -48,13 +48,13 @@ void test01() ...@@ -48,13 +48,13 @@ void test01()
using __gnu_cxx::__pool_alloc; using __gnu_cxx::__pool_alloc;
__pool_alloc<big> alloc_big; __pool_alloc<big> alloc_big;
alloc_big.allocate(1); (void) alloc_big.allocate(1);
// The constant 20 comes from __pool_alloc_base::_M_refill. See // The constant 20 comes from __pool_alloc_base::_M_refill. See
// also __pool_alloc_base::_M_allocate_chunk. // also __pool_alloc_base::_M_allocate_chunk.
__pool_alloc<small> alloc_small; __pool_alloc<small> alloc_small;
for (unsigned int i = 0; i < 20 * sizeof(big) / sizeof(small) + 1; ++i) for (unsigned int i = 0; i < 20 * sizeof(big) / sizeof(small) + 1; ++i)
alloc_small.allocate(1); (void) alloc_small.allocate(1);
} }
int main() int main()
......
...@@ -64,7 +64,7 @@ namespace __gnu_test ...@@ -64,7 +64,7 @@ namespace __gnu_test
check_new(Alloc a = Alloc()) check_new(Alloc a = Alloc())
{ {
__gnu_test::counter::exceptions(false); __gnu_test::counter::exceptions(false);
a.allocate(10); (void) a.allocate(10);
const bool __b((__gnu_test::counter::count() > 0) == uses_global_new); const bool __b((__gnu_test::counter::count() > 0) == uses_global_new);
if (!__b) if (!__b)
throw std::logic_error("counter not incremented"); throw std::logic_error("counter not incremented");
......
...@@ -245,7 +245,7 @@ namespace __gnu_test ...@@ -245,7 +245,7 @@ namespace __gnu_test
Alloc a; Alloc a;
try try
{ {
a.allocate(a.max_size() + 1); (void) a.allocate(a.max_size() + 1);
} }
catch(std::bad_alloc&) catch(std::bad_alloc&)
{ {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment