[PATCH] Fix uses of non-reserved names for template parameters

Rainer Orth ro@CeBiTec.Uni-Bielefeld.DE
Mon May 20 13:40:00 GMT 2019


Hi Jonathan,

> On 20/05/19 14:11 +0200, Rainer Orth wrote:
>>Hi Jonathan,
>>
>>> 	* include/bits/random.h (seed_seq::param): Fix non-reserved name.
>>> 	* include/experimental/type_traits (is_detected_exact)
>>> 	(is_detected_exact_v): Likewise.
>>> 	* include/pstl/execution_defs.h (is_execution_policy)
>>> 	(is_execution_policy_v, __enable_if_execution_policy): Likewise.
>>> 	* include/pstl/execution_impl.h (__policy_traits): Likewise.
>>> 	* testsuite/17_intro/names.cc: Check for more non-reserved names.
>>> 	* testsuite/experimental/names.cc: New test.
>>>
>>> Tested powerpc64le-linux, committed to trunk.
>>
>>the last testcase FAILs on Solaris:
>>
>>+FAIL: experimental/names.cc (test for excess errors)
>>
>>Excess errors:
>>/usr/include/netdb.h:354: error: expected ')' before ';' token
>>
>><netdb.h> has
>>
>>void freeipsecalgent(struct ipsecalgent *ptr);
>>
>>I'll raise this with Oracle, not sure what to do with the testcase.
>
> We already have similar workarounds for other targets with unclean
> headers, so I suggest we just add:
>
> --- a/libstdc++-v3/testsuite/17_intro/names.cc
> +++ b/libstdc++-v3/testsuite/17_intro/names.cc
> @@ -187,4 +187,8 @@
> #undef y
> #endif
>
> +#ifdef __sun__
> +#undef ptr
> +#endif
> +
> #include <bits/stdc++.h>

I hadn't noticed, but that worked fine, of course.  Just tested both
names.cc tests on i386-pc-solaris2.11.

Thanks.
        Rainer

-- 
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University



More information about the Libstdc++ mailing list