Re: [PATCH C++] - SD-6 Implementation Part 3 - .

2014-10-02 Thread Ed Smith-Rowland

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 - .

2014-10-02 Thread Ed Smith-Rowland

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 - .

2014-10-02 Thread Jonathan Wakely

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 - .

2014-10-02 Thread Paolo Carlini

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 - .

2014-10-01 Thread Jonathan Wakely

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 - .

2014-10-01 Thread Ed Smith-Rowland
 
 

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 - .

2014-09-02 Thread Jonathan Wakely

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.