diff mbox series

Fix tests that fail in C++2a mode

Message ID 20190129004751.GA28974@redhat.com
State New
Headers show
Series Fix tests that fail in C++2a mode | expand

Commit Message

Jonathan Wakely Jan. 29, 2019, 12:47 a.m. UTC
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.

Tested x86_64-linux, committed to trunk.
commit 8669b5ad59b13d8112791f5dfbb046aa5ab092d2
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Mon Jan 28 23:46:30 2019 +0000

    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.
diff mbox series

Patch

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  <paolo.carlini@oracle.com>
 
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  <paolo.carlini@oracle.com>
 
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<big> 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<small> 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&)
 	{