c-cppbuiltin.c (c_cpp_builtin): Define __cpp_guaranteed_copy_elision and __cpp_nontyp...
authorJakub Jelinek <jakub@redhat.com>
Mon, 14 Jan 2019 20:12:11 +0000 (21:12 +0100)
committerJakub Jelinek <jakub@gcc.gnu.org>
Mon, 14 Jan 2019 20:12:11 +0000 (21:12 +0100)
* c-cppbuiltin.c (c_cpp_builtin): Define __cpp_guaranteed_copy_elision
and __cpp_nontype_template_parameter_auto.  Add a comment that
__cpp_template_auto is deprecated.

* g++.dg/cpp1z/feat-cxx1z.C: Add tests for
__cpp_guaranteed_copy_elision and __cpp_nontype_template_parameter_auto
feature test macros.
* g++.dg/cpp2a/feat-cxx2a.C: Likewise.

From-SVN: r267925

gcc/c-family/ChangeLog
gcc/c-family/c-cppbuiltin.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/cpp1z/feat-cxx1z.C
gcc/testsuite/g++.dg/cpp2a/feat-cxx2a.C

index 0ff16ab..10e5cc1 100644 (file)
@@ -1,3 +1,9 @@
+2019-01-14  Jakub Jelinek  <jakub@redhat.com>
+
+       * c-cppbuiltin.c (c_cpp_builtin): Define __cpp_guaranteed_copy_elision
+       and __cpp_nontype_template_parameter_auto.  Add a comment that
+       __cpp_template_auto is deprecated.
+
 2019-01-14  Tom Honermann  <tom@honermann.net>
 
        Implement P0482R5, char8_t: A type for UTF-8 characters and strings
index c9b63ca..d389f8c 100644 (file)
@@ -974,9 +974,13 @@ c_cpp_builtins (cpp_reader *pfile)
          cpp_define (pfile, "__cpp_aggregate_bases=201603");
          cpp_define (pfile, "__cpp_deduction_guides=201703");
          cpp_define (pfile, "__cpp_noexcept_function_type=201510");
+         /* Old macro, superseded by
+            __cpp_nontype_template_parameter_auto.  */
          cpp_define (pfile, "__cpp_template_auto=201606");
          cpp_define (pfile, "__cpp_structured_bindings=201606");
          cpp_define (pfile, "__cpp_variadic_using=201611");
+         cpp_define (pfile, "__cpp_guaranteed_copy_elision=201606");
+         cpp_define (pfile, "__cpp_nontype_template_parameter_auto=201606");
        }
       if (cxx_dialect > cxx17)
        {
index d207a51..13bb872 100644 (file)
@@ -1,3 +1,10 @@
+2019-01-14  Jakub Jelinek  <jakub@redhat.com>
+
+       * g++.dg/cpp1z/feat-cxx1z.C: Add tests for
+       __cpp_guaranteed_copy_elision and __cpp_nontype_template_parameter_auto
+       feature test macros.
+       * g++.dg/cpp2a/feat-cxx2a.C: Likewise.
+
 2019-01-14  Marek Polacek  <polacek@redhat.com>
 
        PR c++/88830 - ICE with abstract class.
index f551892..da372dc 100644 (file)
 #  error "__cpp_variadic_using != 201611"
 #endif
 
+#ifndef __cpp_guaranteed_copy_elision
+#  error "__cpp_guaranteed_copy_elision"
+#elif __cpp_guaranteed_copy_elision != 201606
+#  error "__cpp_guaranteed_copy_elision != 201606"
+#endif
+
+#ifndef __cpp_nontype_template_parameter_auto
+#  error "__cpp_nontype_template_parameter_auto"
+#elif __cpp_nontype_template_parameter_auto != 201606
+#  error "__cpp_nontype_template_parameter_auto != 201606"
+#endif
+
 #ifdef __has_cpp_attribute
 
 #  if ! __has_cpp_attribute(maybe_unused)
index 8e1ea48..8ee7b82 100644 (file)
 #  error "__cpp_variadic_using != 201611"
 #endif
 
+#ifndef __cpp_guaranteed_copy_elision
+#  error "__cpp_guaranteed_copy_elision"
+#elif __cpp_guaranteed_copy_elision != 201606
+#  error "__cpp_guaranteed_copy_elision != 201606"
+#endif
+
+#ifndef __cpp_nontype_template_parameter_auto
+#  error "__cpp_nontype_template_parameter_auto"
+#elif __cpp_nontype_template_parameter_auto != 201606
+#  error "__cpp_nontype_template_parameter_auto != 201606"
+#endif
+
 // C++20 features
 
 #if __cpp_conditional_explicit != 201806