I think this started working when I made std::reference_wrapper use
std::__invoke, so we can uncomment the tests.

        * testsuite/20_util/reference_wrapper/invoke.cc: Uncomment tests
        that no longer fail.

Tested powerpc64le-linux, committed to trunk.


commit fef7c523742f474bb3322bd58b7be27dd088ed7d
Author: Jonathan Wakely <jwak...@redhat.com>
Date:   Mon Apr 3 16:55:31 2017 +0100

    Uncomment std::reference_wrapper tests that no longer fail
    
        * testsuite/20_util/reference_wrapper/invoke.cc: Uncomment tests
        that no longer fail.

diff --git a/libstdc++-v3/testsuite/20_util/reference_wrapper/invoke.cc 
b/libstdc++-v3/testsuite/20_util/reference_wrapper/invoke.cc
index 8fd5470..c4a4537 100644
--- a/libstdc++-v3/testsuite/20_util/reference_wrapper/invoke.cc
+++ b/libstdc++-v3/testsuite/20_util/reference_wrapper/invoke.cc
@@ -73,8 +73,7 @@ void test01()
   int (::X::* p_foo_c)(float) const = &::X::foo_c;
   int (::X::* p_foo_v)(float) volatile = &::X::foo_v;
   int (::X::* p_foo_cv)(float) const volatile = &::X::foo_cv;
-  int (::X::* p_foo_varargs)(float, ...) __attribute__((unused))
-    = &::X::foo_varargs;
+  int (::X::* p_foo_varargs)(float, ...) = &::X::foo_varargs;
   int ::X::* p_bar = &::X::bar;
 
   const float pi = 3.14;
@@ -96,10 +95,10 @@ void test01()
   VERIFY(ref(p_foo_v)(xp, pi) == 3);
   VERIFY(ref(p_foo_cv)(x, pi) == 3);
   VERIFY(ref(p_foo_cv)(xp, pi) == 3);
-  // VERIFY(ref(p_foo_varargs)(x, pi) == 3);
-  // VERIFY(ref(p_foo_varargs)(xp, pi, 1, 1) == 3);
-  // VERIFY(ref(p_foo_varargs)(x, pi, 1, 1) == 3);
-  // VERIFY(ref(p_foo_varargs)(xp, pi) == 3);
+  VERIFY(ref(p_foo_varargs)(x, pi) == 3);
+  VERIFY(ref(p_foo_varargs)(xp, pi, 1, 1) == 3);
+  VERIFY(ref(p_foo_varargs)(x, pi, 1, 1) == 3);
+  VERIFY(ref(p_foo_varargs)(xp, pi) == 3);
 
   // Member data pointers
   VERIFY(ref(p_bar)(x) == 17);

Reply via email to