Re: [PATCH C++] - SD-6 Implementation Part 3 - .
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 plusvoid 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) +++
Re: [PATCH C++] - SD-6 Implementation Part 3 - .
On 10/02/2014 02:51 AM, Ed Smith-Rowland wrote: 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! Here is a front-end test patch. Built and tested on x86_64-linux. OK? Ed 2014-10-02 Edward Smith-Rowland 3dw...@verizon.net * g++.dg/cpp1y/feat-cxx98-neg.C: Fix double negative thinko and add many more tests. Index: g++.dg/cpp1y/feat-cxx98-neg.C === --- g++.dg/cpp1y/feat-cxx98-neg.C (revision 215793) +++ g++.dg/cpp1y/feat-cxx98-neg.C (working copy) @@ -1,6 +1,99 @@ // { dg-do compile { target c++98_only } } // { dg-options -ansi } -#ifdef __cpp_runtime_arrays +#ifndef __cpp_runtime_arrays # error __cpp_runtime_arrays // { dg-error error } #endif + +#ifndef __cpp_unicode_characters +# error __cpp_unicode_characters // { dg-error error } +#endif + +#ifndef __cpp_raw_strings +# error __cpp_raw_strings // { dg-error error } +#endif + +#ifndef __cpp_unicode_literals +# error __cpp_unicode_literals // { dg-error error } +#endif + +#ifndef __cpp_user_defined_literals +# error __cpp_user_defined_literals // { dg-error error } +#endif + +#ifndef __cpp_lambdas +# error __cpp_lambdas // { dg-error error } +#endif + +#ifndef __cpp_constexpr +# error __cpp_constexpr // { dg-error error } +#endif + +#ifndef __cpp_static_assert +# error __cpp_static_assert // { dg-error error } +#endif + +#ifndef __cpp_decltype +# error __cpp_decltype // { dg-error error } +#endif + +#ifndef __cpp_attributes +# error __cpp_attributes // { dg-error error } +#endif + +#ifndef __cpp_rvalue_reference +# error __cpp_rvalue_reference // { dg-error error } +#endif + +#ifndef __cpp_variadic_templates +# error __cpp_variadic_templates // { dg-error error } +#endif + +#ifndef __cpp_alias_templates +# error __cpp_alias_templates // { dg-error error } +#endif + +// C++14 + +// C++98 gets binary literals. +//#ifndef __cpp_binary_literals +//# error __cpp_binary_literals +//#endif + +#ifndef __cpp_init_captures +# error __cpp_init_captures // { dg-error error } +#endif + +#ifndef __cpp_generic_lambdas +# error __cpp_generic_lambdas // { dg-error error } +#endif + +#ifndef __cpp_decltype_auto +# error __cpp_decltype_auto // { dg-error error } +#endif + +#ifndef __cpp_return_type_deduction +# error __cpp_return_type_deduction // { dg-error error } +#endif + +// Aggregate initializers not in yet. +//#ifdef __cpp_aggregate_nsdmi +//# error __cpp_aggregate_nsdmi +//#endif + +#ifndef __cpp_variable_templates +# error __cpp_variable_templates // { dg-error error } +#endif + +#ifndef __cpp_digit_separators +# error __cpp_digit_separators // { dg-error error } +#endif + +#ifndef __cpp_attribute_deprecated +# error __cpp_attribute_deprecated // { dg-error error } +#endif + +// Sized deallocation not in yet. +//#ifdef __cpp_sized_deallocation +//# error __cpp_sized_deallocation +//#endif
Re: [PATCH C++] - SD-6 Implementation Part 3 - .
On 02/10/14 02:51 -0400, Ed Smith-Rowland wrote: On 10/01/2014 11:28 AM, Jonathan Wakely wrote: 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? Yes, the library change is OK, thanks for the quick fix.
Re: [PATCH C++] - SD-6 Implementation Part 3 - .
Hi, On 10/02/2014 10:08 AM, Ed Smith-Rowland wrote: On 10/02/2014 02:51 AM, Ed Smith-Rowland wrote: 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! Here is a front-end test patch. Built and tested on x86_64-linux. OK? Having double checked that it works to avoid the spurious fail, I'm going to apply the patch as obvious. Thanks, Paolo.
Re: [PATCH C++] - SD-6 Implementation Part 3 - .
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?
Re: Re: [PATCH C++] - SD-6 Implementation Part 3 - .
On 10/01/14, 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? I swore I put these changes in. I'll fix these ASAP. Ed
Re: [PATCH C++] - SD-6 Implementation Part 3 - .
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. Once committed, can you update https://gcc.gnu.org/gcc-5/changes.html to say GCC follows the SD-6 recommendations? Thanks.