+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
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)
{
+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.
# 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)
# 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