On 10/01/2014 11:28 AM, Jonathan Wakely wrote:
On 02/09/14 10:24 +0100, Jonathan Wakely wrote:
On 01/09/14 21:46 -0400, Ed Smith-Rowland wrote:
Index: include/bits/stl_function.h
===================================================================
--- include/bits/stl_function.h    (revision 214680)
+++ include/bits/stl_function.h    (working copy)
@@ -217,6 +217,10 @@
   };

#if __cplusplus > 201103L
+
+#define __cpp_lib_transparent_operators 201210
+#define __cpp_lib_generic_associative_lookup 201304

The generic associative lookup feature is not supported.

Index: testsuite/experimental/feat-lib-fund.cc
===================================================================
--- testsuite/experimental/feat-lib-fund.cc    (revision 0)
+++ testsuite/experimental/feat-lib-fund.cc    (working copy)
@@ -0,0 +1,25 @@
+// { dg-options "-std=gnu++14" }
+// { dg-do compile }
+
+#include <experimental/optional>
+#include <experimental/string_view>
+
+#if !__has_include(<experimental/optional>)
+#  error "<experimental/optional>"
+#endif
+
+//#if !__has_include(<experimental/net>)
+//#  error "<experimental/net>"
+//#endif
+
+//#if !__has_include(<experimental/any>)
+//#  error "<experimental/any>"
+//#endif

This can be uncommented, <experimental/any> is available.

OK with those changes.

Ed, the commit at http://gcc.gnu.org/r215752 doesn't have the
corrections I asked for above and causes a number of test failures,
could you look into it please?


OK,

Here is the patch.

Built and tested on x86_64-linux.

OK?

Ed

FWIW, I remember a svn tree corruption while getting this patch ready.
I should have retested everything in the new tree.
Sorry everyone!

2014-10-02  Edward Smith-Rowland  <3dw...@verizon.net>

        * include/bits/stl_function.h: generic associative lookup feature
        is not supported.
        * testsuite/experimental/feat-lib-fund.cc:<experimental/any> is
        actually available.
        * testsuite/experimental/feat-cxx14.cc: Add test for __cpp_lib_is_final.
        * testsuite/20_util/declval/requirements/1_neg.cc: Adjust.
        * testsuite/20_util/duration/literals/range.cc: Adjust.
        * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Adjust.
        * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Adjust.
        * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Adjust.
        * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust.
        * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: Adjust.
        * testsuite/23_containers/array/tuple_interface/get_neg.cc: Adjust.
        * testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
        Adjust.

Index: include/bits/stl_function.h
===================================================================
--- include/bits/stl_function.h (revision 215788)
+++ include/bits/stl_function.h (working copy)
@@ -219,7 +219,7 @@
 #if __cplusplus > 201103L
 
 #define __cpp_lib_transparent_operators 201210
-#define __cpp_lib_generic_associative_lookup 201304
+//#define __cpp_lib_generic_associative_lookup 201304
 
   template<>
     struct plus<void>
Index: testsuite/experimental/feat-lib-fund.cc
===================================================================
--- testsuite/experimental/feat-lib-fund.cc     (revision 215788)
+++ testsuite/experimental/feat-lib-fund.cc     (working copy)
@@ -12,9 +12,9 @@
 //#  error "<experimental/net>"
 //#endif
 
-//#if !__has_include(<experimental/any>)
-//#  error "<experimental/any>"
-//#endif
+#if !__has_include(<experimental/any>)
+#  error "<experimental/any>"
+#endif
 
 //#if !__has_include(<experimental/memory_resource>)
 //#  error "<experimental/memory_resource>"
Index: testsuite/experimental/feat-cxx14.cc
===================================================================
--- testsuite/experimental/feat-cxx14.cc        (revision 215788)
+++ testsuite/experimental/feat-cxx14.cc        (working copy)
@@ -78,11 +78,11 @@
 #  error "__cpp_lib_complex_udls != 201309"
 #endif
 
-#ifndef  __cpp_lib_generic_associative_lookup
-#  error "__cpp_lib_generic_associative_lookup"
-#elif  __cpp_lib_generic_associative_lookup != 201304
-#  error "__cpp_lib_generic_associative_lookup != 201304"
-#endif
+//#ifndef  __cpp_lib_generic_associative_lookup
+//#  error "__cpp_lib_generic_associative_lookup"
+//#elif  __cpp_lib_generic_associative_lookup != 201304
+//#  error "__cpp_lib_generic_associative_lookup != 201304"
+//#endif
 
 //#ifndef  __cpp_lib_null_iterators
 //#  error "__cpp_lib_null_iterators"
@@ -111,3 +111,9 @@
 #elif  __cpp_lib_shared_timed_mutex != 201402
 #  error "__cpp_lib_shared_timed_mutex != 201402"
 #endif
+
+#ifndef  __cpp_lib_is_final
+#  error "__cpp_lib_is_final"
+#elif  __cpp_lib_is_final != 201402
+#  error "__cpp_lib_is_final != 201402"
+#endif
Index: testsuite/20_util/declval/requirements/1_neg.cc
===================================================================
--- testsuite/20_util/declval/requirements/1_neg.cc     (revision 215788)
+++ testsuite/20_util/declval/requirements/1_neg.cc     (working copy)
@@ -19,7 +19,7 @@
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 
-// { dg-error "static assertion failed" "" { target *-*-* } 2088 }
+// { dg-error "static assertion failed" "" { target *-*-* } 2099 }
 
 #include <utility>
 
Index: testsuite/20_util/duration/literals/range.cc
===================================================================
--- testsuite/20_util/duration/literals/range.cc        (revision 215788)
+++ testsuite/20_util/duration/literals/range.cc        (working copy)
@@ -27,5 +27,5 @@
 
   // std::numeric_limits<int64_t>::max() == 9223372036854775807;
   auto h = 9223372036854775808h;
-  // { dg-error "cannot be represented" "" { target *-*-* } 799 }
+  // { dg-error "cannot be represented" "" { target *-*-* } 796 }
 }
Index: testsuite/20_util/duration/requirements/typedefs_neg1.cc
===================================================================
--- testsuite/20_util/duration/requirements/typedefs_neg1.cc    (revision 
215788)
+++ testsuite/20_util/duration/requirements/typedefs_neg1.cc    (working copy)
@@ -31,5 +31,5 @@
   test_type d;
 }
 
-// { dg-error "rep cannot be a duration" "" { target *-*-* } 249 }
+// { dg-error "rep cannot be a duration" "" { target *-*-* } 246 }
 // { dg-error "required from here" "" { target *-*-* } 31 }
Index: testsuite/20_util/duration/requirements/typedefs_neg2.cc
===================================================================
--- testsuite/20_util/duration/requirements/typedefs_neg2.cc    (revision 
215788)
+++ testsuite/20_util/duration/requirements/typedefs_neg2.cc    (working copy)
@@ -32,5 +32,5 @@
   test_type d;                 // { dg-error "required from here" }
 }
 
-// { dg-error "must be a specialization of ratio" "" { target *-*-* } 250 }
+// { dg-error "must be a specialization of ratio" "" { target *-*-* } 247 }
 // { dg-prune-output "not a member" }
Index: testsuite/20_util/duration/requirements/typedefs_neg3.cc
===================================================================
--- testsuite/20_util/duration/requirements/typedefs_neg3.cc    (revision 
215788)
+++ testsuite/20_util/duration/requirements/typedefs_neg3.cc    (working copy)
@@ -33,5 +33,5 @@
   test_type d;
 }
 
-// { dg-error "period must be positive" "" { target *-*-* } 252 }
+// { dg-error "period must be positive" "" { target *-*-* } 249 }
 // { dg-error "required from here" "" { target *-*-* } 33 }
Index: testsuite/20_util/make_signed/requirements/typedefs_neg.cc
===================================================================
--- testsuite/20_util/make_signed/requirements/typedefs_neg.cc  (revision 
215788)
+++ testsuite/20_util/make_signed/requirements/typedefs_neg.cc  (working copy)
@@ -48,5 +48,5 @@
 // { dg-error "required from here" "" { target *-*-* } 40 }
 // { dg-error "required from here" "" { target *-*-* } 42 }
 
-// { dg-error "invalid use of incomplete type" "" { target *-*-* } 1753 }
-// { dg-error "declaration of" "" { target *-*-* } 1717 }
+// { dg-error "invalid use of incomplete type" "" { target *-*-* } 1764 }
+// { dg-error "declaration of" "" { target *-*-* } 1728 }
Index: testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc
===================================================================
--- testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc        
(revision 215788)
+++ testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc        
(working copy)
@@ -48,5 +48,5 @@
 // { dg-error "required from here" "" { target *-*-* } 40 }
 // { dg-error "required from here" "" { target *-*-* } 42 }
 
-// { dg-error "invalid use of incomplete type" "" { target *-*-* } 1656 }
-// { dg-error "declaration of" "" { target *-*-* } 1620 }
+// { dg-error "invalid use of incomplete type" "" { target *-*-* } 1667 }
+// { dg-error "declaration of" "" { target *-*-* } 1631 }
Index: testsuite/23_containers/array/tuple_interface/get_neg.cc
===================================================================
--- testsuite/23_containers/array/tuple_interface/get_neg.cc    (revision 
215788)
+++ testsuite/23_containers/array/tuple_interface/get_neg.cc    (working copy)
@@ -28,6 +28,6 @@
 int n2 = std::get<1>(std::move(a));
 int n3 = std::get<1>(ca);
 
-// { dg-error "static assertion failed" "" { target *-*-* } 277 }
-// { dg-error "static assertion failed" "" { target *-*-* } 286 }
-// { dg-error "static assertion failed" "" { target *-*-* } 294 }
+// { dg-error "static assertion failed" "" { target *-*-* } 274 }
+// { dg-error "static assertion failed" "" { target *-*-* } 283 }
+// { dg-error "static assertion failed" "" { target *-*-* } 291 }
Index: testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc
===================================================================
--- testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc  
(revision 215788)
+++ testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc  
(working copy)
@@ -23,4 +23,4 @@
 
 typedef std::tuple_element<1, std::array<int, 1>>::type type;
 
-// { dg-error "static assertion failed" "" { target *-*-* } 325 }
+// { dg-error "static assertion failed" "" { target *-*-* } 322 }

Reply via email to