aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2019-01-14 21:12:11 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2019-01-14 21:12:11 +0100
commita30d0196379064ed2b24c6d405ffeb6b72b9a281 (patch)
tree3f256df585de45681096786a19ee5c494dbab351
parent345364cf7fa2a675d954ab4982bec6d664ee96e8 (diff)
downloadgcc-a30d0196379064ed2b24c6d405ffeb6b72b9a281.zip
gcc-a30d0196379064ed2b24c6d405ffeb6b72b9a281.tar.gz
gcc-a30d0196379064ed2b24c6d405ffeb6b72b9a281.tar.bz2
c-cppbuiltin.c (c_cpp_builtin): Define __cpp_guaranteed_copy_elision and __cpp_nontype_template_parameter_auto.
* 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
-rw-r--r--gcc/c-family/ChangeLog6
-rw-r--r--gcc/c-family/c-cppbuiltin.c4
-rw-r--r--gcc/testsuite/ChangeLog7
-rw-r--r--gcc/testsuite/g++.dg/cpp1z/feat-cxx1z.C12
-rw-r--r--gcc/testsuite/g++.dg/cpp2a/feat-cxx2a.C12
5 files changed, 41 insertions, 0 deletions
diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog
index 0ff16ab..10e5cc1 100644
--- a/gcc/c-family/ChangeLog
+++ b/gcc/c-family/ChangeLog
@@ -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
diff --git a/gcc/c-family/c-cppbuiltin.c b/gcc/c-family/c-cppbuiltin.c
index c9b63ca..d389f8c 100644
--- a/gcc/c-family/c-cppbuiltin.c
+++ b/gcc/c-family/c-cppbuiltin.c
@@ -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)
{
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index d207a51..13bb872 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -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.
diff --git a/gcc/testsuite/g++.dg/cpp1z/feat-cxx1z.C b/gcc/testsuite/g++.dg/cpp1z/feat-cxx1z.C
index f551892..da372dc 100644
--- a/gcc/testsuite/g++.dg/cpp1z/feat-cxx1z.C
+++ b/gcc/testsuite/g++.dg/cpp1z/feat-cxx1z.C
@@ -417,6 +417,18 @@
# 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)
diff --git a/gcc/testsuite/g++.dg/cpp2a/feat-cxx2a.C b/gcc/testsuite/g++.dg/cpp2a/feat-cxx2a.C
index 8e1ea48..8ee7b82 100644
--- a/gcc/testsuite/g++.dg/cpp2a/feat-cxx2a.C
+++ b/gcc/testsuite/g++.dg/cpp2a/feat-cxx2a.C
@@ -416,6 +416,18 @@
# 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