aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/c/c-decl.cc2
-rw-r--r--gcc/cp/cp-objcp-common.cc1
-rw-r--r--gcc/testsuite/c-c++-common/cpp/has-builtin-4.c16
3 files changed, 19 insertions, 0 deletions
diff --git a/gcc/c/c-decl.cc b/gcc/c/c-decl.cc
index 314b118..68d331b 100644
--- a/gcc/c/c-decl.cc
+++ b/gcc/c/c-decl.cc
@@ -11804,6 +11804,8 @@ names_builtin_p (const char *name)
case RID_CHOOSE_EXPR:
case RID_OFFSETOF:
case RID_TYPES_COMPATIBLE_P:
+ case RID_C23_VA_START:
+ case RID_VA_ARG:
return 1;
default:
break;
diff --git a/gcc/cp/cp-objcp-common.cc b/gcc/cp/cp-objcp-common.cc
index fc6c790..8336d0b 100644
--- a/gcc/cp/cp-objcp-common.cc
+++ b/gcc/cp/cp-objcp-common.cc
@@ -587,6 +587,7 @@ names_builtin_p (const char *name)
case RID_BUILTIN_ASSOC_BARRIER:
case RID_BUILTIN_BIT_CAST:
case RID_OFFSETOF:
+ case RID_VA_ARG:
return 1;
case RID_BUILTIN_OPERATOR_NEW:
case RID_BUILTIN_OPERATOR_DELETE:
diff --git a/gcc/testsuite/c-c++-common/cpp/has-builtin-4.c b/gcc/testsuite/c-c++-common/cpp/has-builtin-4.c
new file mode 100644
index 0000000..65d2b18
--- /dev/null
+++ b/gcc/testsuite/c-c++-common/cpp/has-builtin-4.c
@@ -0,0 +1,16 @@
+/* { dg-do preprocess } */
+
+#if __has_builtin (__builtin_va_start) != 1
+#error "No __builtin_va_start"
+#endif
+#if __has_builtin (__builtin_va_end) != 1
+#error "No __builtin_va_end"
+#endif
+#if __has_builtin (__builtin_va_arg) != 1
+#error "no __builtin_va_arg"
+#endif
+#if __STDC_VERSION__ >= 202311L
+#if __has_builtin (__builtin_c23_va_start) != 1
+#error "no __builtin_c23_va_start"
+#endif
+#endif