diff mbox

[C++] - SD-6 Implementation Part 3 - .

Message ID 542D07E3.3040207@verizon.net
State New
Headers show

Commit Message

Ed Smith-Rowland Oct. 2, 2014, 8:08 a.m. UTC
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  <3dw4rd@verizon.net>

	* g++.dg/cpp1y/feat-cxx98-neg.C: Fix double negative thinko and
	add many more tests.

Comments

Paolo Carlini Oct. 2, 2014, 8:28 p.m. UTC | #1
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.
diff mbox

Patch

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