This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH trivial] Fix PR71214 (__cpp_rvalue_references vs. __cpp_rvalue_reference)
- From: Richard Biener <richard dot guenther at gmail dot com>
- To: Markus Trippelsdorf <markus at trippelsdorf dot de>
- Cc: GCC Patches <gcc-patches at gcc dot gnu dot org>, Jason Merrill <jason at redhat dot com>
- Date: Tue, 5 Jul 2016 12:44:27 +0200
- Subject: Re: [PATCH trivial] Fix PR71214 (__cpp_rvalue_references vs. __cpp_rvalue_reference)
- Authentication-results: sourceware.org; auth=none
- References: <20160705100741.GB316@x4>
On Tue, Jul 5, 2016 at 12:07 PM, Markus Trippelsdorf
<markus@trippelsdorf.de> wrote:
> Hi,
>
> as PR71214 points out gcc uses a wrong feature test macro for C++11
> rvalue references: __cpp_rvalue_reference instead of the correct
> __cpp_rvalue_references.
>
> The fix is trivial. Ok for trunk and active branches?
I wonder if we should to retain the (bogus) old defines for backward
compatibility.
Does anyone use those?
Richard.
> Thanks.
>
> c-family/ChangeLog
>
> * c-cppbuiltin.c (c_cpp_builtins): Use __cpp_rvalue_references
> instead of __cpp_rvalue_reference.
>
> diff --git a/gcc/c-family/c-cppbuiltin.c b/gcc/c-family/c-cppbuiltin.c
> index 408ad4747a33..f19375a73730 100644
> --- a/gcc/c-family/c-cppbuiltin.c
> +++ b/gcc/c-family/c-cppbuiltin.c
> @@ -847,7 +847,7 @@ c_cpp_builtins (cpp_reader *pfile)
> cpp_define (pfile, "__cpp_static_assert=200410");
> cpp_define (pfile, "__cpp_decltype=200707");
> cpp_define (pfile, "__cpp_attributes=200809");
> - cpp_define (pfile, "__cpp_rvalue_reference=200610");
> + cpp_define (pfile, "__cpp_rvalue_references=200610");
> cpp_define (pfile, "__cpp_variadic_templates=200704");
> cpp_define (pfile, "__cpp_initializer_lists=200806");
> cpp_define (pfile, "__cpp_delegating_constructors=200604");
> diff --git a/gcc/testsuite/g++.dg/cpp1y/feat-cxx11.C b/gcc/testsuite/g++.dg/cpp1y/feat-cxx11.C
> index 397b9a899573..6928d6bcbd87 100644
> --- a/gcc/testsuite/g++.dg/cpp1y/feat-cxx11.C
> +++ b/gcc/testsuite/g++.dg/cpp1y/feat-cxx11.C
> @@ -77,10 +77,10 @@
> # error "__cpp_attributes != 200809"
> #endif
>
> -#ifndef __cpp_rvalue_reference
> -# error "__cpp_rvalue_reference"
> -#elif __cpp_rvalue_reference != 200610
> -# error "__cpp_rvalue_reference != 200610"
> +#ifndef __cpp_rvalue_references
> +# error "__cpp_rvalue_references"
> +#elif __cpp_rvalue_references != 200610
> +# error "__cpp_rvalue_references != 200610"
> #endif
>
> #ifndef __cpp_variadic_templates
> diff --git a/gcc/testsuite/g++.dg/cpp1y/feat-cxx14.C b/gcc/testsuite/g++.dg/cpp1y/feat-cxx14.C
> index fa59f90fa892..dc30a9b3cf84 100644
> --- a/gcc/testsuite/g++.dg/cpp1y/feat-cxx14.C
> +++ b/gcc/testsuite/g++.dg/cpp1y/feat-cxx14.C
> @@ -70,10 +70,10 @@
> # error "__cpp_attributes != 200809"
> #endif
>
> -#ifndef __cpp_rvalue_reference
> -# error "__cpp_rvalue_reference"
> -#elif __cpp_rvalue_reference != 200610
> -# error "__cpp_rvalue_reference != 200610"
> +#ifndef __cpp_rvalue_references
> +# error "__cpp_rvalue_references"
> +#elif __cpp_rvalue_references != 200610
> +# error "__cpp_rvalue_references != 200610"
> #endif
>
> #ifndef __cpp_variadic_templates
> diff --git a/gcc/testsuite/g++.dg/cpp1y/feat-cxx98-neg.C b/gcc/testsuite/g++.dg/cpp1y/feat-cxx98-neg.C
> index 886b3d3df10e..5fbffabd1396 100644
> --- a/gcc/testsuite/g++.dg/cpp1y/feat-cxx98-neg.C
> +++ b/gcc/testsuite/g++.dg/cpp1y/feat-cxx98-neg.C
> @@ -42,8 +42,8 @@
> # error "__cpp_attributes" // { dg-error "error" }
> #endif
>
> -#ifndef __cpp_rvalue_reference
> -# error "__cpp_rvalue_reference" // { dg-error "error" }
> +#ifndef __cpp_rvalue_references
> +# error "__cpp_rvalue_references" // { dg-error "error" }
> #endif
>
> #ifndef __cpp_variadic_templates
> diff --git a/gcc/testsuite/g++.dg/cpp1z/feat-cxx1z.C b/gcc/testsuite/g++.dg/cpp1z/feat-cxx1z.C
> index f8a87a8ddc37..c7becc1cbb47 100644
> --- a/gcc/testsuite/g++.dg/cpp1z/feat-cxx1z.C
> +++ b/gcc/testsuite/g++.dg/cpp1z/feat-cxx1z.C
> @@ -58,10 +58,10 @@
> # error "__cpp_attributes != 200809"
> #endif
>
> -#ifndef __cpp_rvalue_reference
> -# error "__cpp_rvalue_reference"
> -#elif __cpp_rvalue_reference != 200610
> -# error "__cpp_rvalue_reference != 200610"
> +#ifndef __cpp_rvalue_references
> +# error "__cpp_rvalue_references"
> +#elif __cpp_rvalue_references != 200610
> +# error "__cpp_rvalue_references != 200610"
> #endif
>
> #ifndef __cpp_variadic_templates
> --
> Markus