aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/c-family/ChangeLog5
-rw-r--r--gcc/c-family/c-cppbuiltin.c1
-rw-r--r--gcc/testsuite/g++.dg/cpp1z/feat-cxx1z.C6
3 files changed, 12 insertions, 0 deletions
diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog
index 968d483..a7f2f0d 100644
--- a/gcc/c-family/ChangeLog
+++ b/gcc/c-family/ChangeLog
@@ -1,3 +1,8 @@
+2017-01-10 Jason Merrill <jason@redhat.com>
+
+ Implement P0195R2, C++17 variadic using.
+ * c-cppbuiltin.c (c_cpp_builtins): Define __cpp_variadic_using.
+
2017-01-09 Jakub Jelinek <jakub@redhat.com>
PR translation/79019
diff --git a/gcc/c-family/c-cppbuiltin.c b/gcc/c-family/c-cppbuiltin.c
index 2115099..c114bbd 100644
--- a/gcc/c-family/c-cppbuiltin.c
+++ b/gcc/c-family/c-cppbuiltin.c
@@ -970,6 +970,7 @@ c_cpp_builtins (cpp_reader *pfile)
cpp_define (pfile, "__cpp_noexcept_function_type=201510");
cpp_define (pfile, "__cpp_template_auto=201606");
cpp_define (pfile, "__cpp_structured_bindings=201606");
+ cpp_define (pfile, "__cpp_variadic_using=201611");
}
if (flag_concepts)
cpp_define (pfile, "__cpp_concepts=201507");
diff --git a/gcc/testsuite/g++.dg/cpp1z/feat-cxx1z.C b/gcc/testsuite/g++.dg/cpp1z/feat-cxx1z.C
index f61b9f5..e424e1c 100644
--- a/gcc/testsuite/g++.dg/cpp1z/feat-cxx1z.C
+++ b/gcc/testsuite/g++.dg/cpp1z/feat-cxx1z.C
@@ -404,6 +404,12 @@
# error "__cpp_template_template_args != 201611"
#endif
+#ifndef __cpp_variadic_using
+# error "__cpp_variadic_using"
+#elif __cpp_variadic_using != 201611
+# error "__cpp_variadic_using != 201611"
+#endif
+
#ifdef __has_cpp_attribute
# if ! __has_cpp_attribute(maybe_unused)