public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* ginclude: C2x header version macros
@ 2022-11-12 18:18 Joseph Myers
  2022-11-13 12:22 ` Richard Biener
  0 siblings, 1 reply; 2+ messages in thread
From: Joseph Myers @ 2022-11-12 18:18 UTC (permalink / raw)
  To: gcc-patches

C2x adds __STDC_VERSION_*_H__ macros to individual headers with
interface changes compared to C17.  All the new header features in
headers provided by GCC have now been implemented, so define those
macros to the value given in the current working draft.

Bootstrapped with no regressions for x86_64-pc-linux-gnu.  OK to
commit?

gcc/
	* ginclude/float.h [__STDC_VERSION__ > 201710L]
	(__STDC_VERSION_FLOAT_H__): New macro.
	* ginclude/stdarg.h [__STDC_VERSION__ > 201710L]
	(__STDC_VERSION_STDARG_H__): New macro.
	* ginclude/stdatomic.h [__STDC_VERSION__ > 201710L]
	(__STDC_VERSION_STDATOMIC_H__): New macro.
	* ginclude/stddef.h [__STDC_VERSION__ > 201710L]
	(__STDC_VERSION_STDDEF_H__): New macro.
	* ginclude/stdint-gcc.h [__STDC_VERSION__ > 201710L]
	(__STDC_VERSION_STDINT_H__): New macro.
	* glimits.h [__STDC_VERSION__ > 201710L]
	(__STDC_VERSION_LIMITS_H__): New macro.

gcc/testsuite/
	* gcc.dg/c11-float-8.c, gcc.dg/c11-limits-1.c,
	gcc.dg/c11-stdarg-4.c, gcc.dg/c11-stdatomic-3.c,
	gcc.dg/c11-stddef-1.c, gcc.dg/c11-stdint-1.c,
	gcc.dg/c2x-float-13.c, gcc.dg/c2x-limits-1.c,
	gcc.dg/c2x-stdarg-5.c, gcc.dg/c2x-stdatomic-1.c,
	gcc.dg/c2x-stddef-1.c, gcc.dg/c2x-stdint-1.c: New tests.

diff --git a/gcc/ginclude/float.h b/gcc/ginclude/float.h
index bc5439d664f..172b9de477f 100644
--- a/gcc/ginclude/float.h
+++ b/gcc/ginclude/float.h
@@ -624,4 +624,8 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 
 #endif /* __DEC32_MANT_DIG__ */
 
+#if defined __STDC_VERSION__ && __STDC_VERSION__ > 201710L
+#define __STDC_VERSION_FLOAT_H__	202311L
+#endif
+
 #endif /* _FLOAT_H___ */
diff --git a/gcc/ginclude/stdarg.h b/gcc/ginclude/stdarg.h
index c704c9ffcf2..5149f7b3f4f 100644
--- a/gcc/ginclude/stdarg.h
+++ b/gcc/ginclude/stdarg.h
@@ -125,6 +125,10 @@ typedef __gnuc_va_list va_list;
 
 #endif /* not __svr4__ */
 
+#if defined __STDC_VERSION__ && __STDC_VERSION__ > 201710L
+#define __STDC_VERSION_STDARG_H__	202311L
+#endif
+
 #endif /* _STDARG_H */
 
 #endif /* not _ANSI_STDARG_H_ */
diff --git a/gcc/ginclude/stdatomic.h b/gcc/ginclude/stdatomic.h
index a56ba5d9639..e16b072ccde 100644
--- a/gcc/ginclude/stdatomic.h
+++ b/gcc/ginclude/stdatomic.h
@@ -248,4 +248,8 @@ extern void atomic_flag_clear (volatile atomic_flag *);
 extern void atomic_flag_clear_explicit (volatile atomic_flag *, memory_order);
 #define atomic_flag_clear_explicit(PTR, MO)   __atomic_clear ((PTR), (MO))
 
+#if defined __STDC_VERSION__ && __STDC_VERSION__ > 201710L
+#define __STDC_VERSION_STDATOMIC_H__	202311L
+#endif
+
 #endif  /* _STDATOMIC_H */
diff --git a/gcc/ginclude/stddef.h b/gcc/ginclude/stddef.h
index 2767edf51de..7980045e712 100644
--- a/gcc/ginclude/stddef.h
+++ b/gcc/ginclude/stddef.h
@@ -454,6 +454,7 @@ typedef struct {
 
 #if defined __STDC_VERSION__ && __STDC_VERSION__ > 201710L
 #define unreachable() (__builtin_unreachable ())
+#define __STDC_VERSION_STDDEF_H__	202311L
 #endif
 
 #endif /* _STDDEF_H was defined this time */
diff --git a/gcc/ginclude/stdint-gcc.h b/gcc/ginclude/stdint-gcc.h
index 6be01ae28b8..eab651d968a 100644
--- a/gcc/ginclude/stdint-gcc.h
+++ b/gcc/ginclude/stdint-gcc.h
@@ -362,4 +362,8 @@ typedef __UINTMAX_TYPE__ uintmax_t;
 
 #endif
 
+#if defined __STDC_VERSION__ && __STDC_VERSION__ > 201710L
+#define __STDC_VERSION_STDINT_H__	202311L
+#endif
+
 #endif /* _GCC_STDINT_H */
diff --git a/gcc/glimits.h b/gcc/glimits.h
index 8d74c8b88d6..994f7e33bbe 100644
--- a/gcc/glimits.h
+++ b/gcc/glimits.h
@@ -156,6 +156,8 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 # define BOOL_MAX 1
 # undef BOOL_WIDTH
 # define BOOL_WIDTH 1
+
+# define __STDC_VERSION_LIMITS_H__	202311L
 #endif
 
 #endif /* _LIMITS_H___ */
diff --git a/gcc/testsuite/gcc.dg/c11-float-8.c b/gcc/testsuite/gcc.dg/c11-float-8.c
new file mode 100644
index 00000000000..7fb1e0a5683
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/c11-float-8.c
@@ -0,0 +1,9 @@
+/* Test __STDC_VERSION_FLOAT_H__ not in C11.  */
+/* { dg-do preprocess } */
+/* { dg-options "-std=c11 -pedantic-errors" } */
+
+#include <float.h>
+
+#ifdef __STDC_VERSION_FLOAT_H__
+#error "__STDC_VERSION_FLOAT_H__ defined"
+#endif
diff --git a/gcc/testsuite/gcc.dg/c11-limits-1.c b/gcc/testsuite/gcc.dg/c11-limits-1.c
new file mode 100644
index 00000000000..6dc5737024d
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/c11-limits-1.c
@@ -0,0 +1,9 @@
+/* Test __STDC_VERSION_LIMITS_H__ not in C11.  */
+/* { dg-do preprocess } */
+/* { dg-options "-std=c11 -pedantic-errors" } */
+
+#include <limits.h>
+
+#ifdef __STDC_VERSION_LIMITS_H__
+#error "__STDC_VERSION_LIMITS_H__ defined"
+#endif
diff --git a/gcc/testsuite/gcc.dg/c11-stdarg-4.c b/gcc/testsuite/gcc.dg/c11-stdarg-4.c
new file mode 100644
index 00000000000..06bff1f0445
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/c11-stdarg-4.c
@@ -0,0 +1,9 @@
+/* Test __STDC_VERSION_STDARG_H__ not in C11.  */
+/* { dg-do preprocess } */
+/* { dg-options "-std=c11 -pedantic-errors" } */
+
+#include <stdarg.h>
+
+#ifdef __STDC_VERSION_STDARG_H__
+#error "__STDC_VERSION_STDARG_H__ defined"
+#endif
diff --git a/gcc/testsuite/gcc.dg/c11-stdatomic-3.c b/gcc/testsuite/gcc.dg/c11-stdatomic-3.c
new file mode 100644
index 00000000000..1f5a71b6219
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/c11-stdatomic-3.c
@@ -0,0 +1,9 @@
+/* Test __STDC_VERSION_STDATOMIC_H__ not in C11.  */
+/* { dg-do preprocess } */
+/* { dg-options "-std=c11 -pedantic-errors" } */
+
+#include <stdatomic.h>
+
+#ifdef __STDC_VERSION_STDATOMIC_H__
+#error "__STDC_VERSION_STDATOMIC_H__ defined"
+#endif
diff --git a/gcc/testsuite/gcc.dg/c11-stddef-1.c b/gcc/testsuite/gcc.dg/c11-stddef-1.c
new file mode 100644
index 00000000000..9918d9478c4
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/c11-stddef-1.c
@@ -0,0 +1,9 @@
+/* Test __STDC_VERSION_STDDEF_H__ not in C11.  */
+/* { dg-do preprocess } */
+/* { dg-options "-std=c11 -pedantic-errors" } */
+
+#include <stddef.h>
+
+#ifdef __STDC_VERSION_STDDEF_H__
+#error "__STDC_VERSION_STDDEF_H__ defined"
+#endif
diff --git a/gcc/testsuite/gcc.dg/c11-stdint-1.c b/gcc/testsuite/gcc.dg/c11-stdint-1.c
new file mode 100644
index 00000000000..43fe681c7a5
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/c11-stdint-1.c
@@ -0,0 +1,9 @@
+/* Test __STDC_VERSION_STDINT_H__ not in C11.  */
+/* { dg-do preprocess } */
+/* { dg-options "-std=c11 -pedantic-errors -ffreestanding" } */
+
+#include <stdint.h>
+
+#ifdef __STDC_VERSION_STDINT_H__
+#error "__STDC_VERSION_STDINT_H__ defined"
+#endif
diff --git a/gcc/testsuite/gcc.dg/c2x-float-13.c b/gcc/testsuite/gcc.dg/c2x-float-13.c
new file mode 100644
index 00000000000..dc54bc734b3
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/c2x-float-13.c
@@ -0,0 +1,13 @@
+/* Test __STDC_VERSION_FLOAT_H__ in C2x.  */
+/* { dg-do preprocess } */
+/* { dg-options "-std=c2x -pedantic-errors" } */
+
+#include <float.h>
+
+#ifndef __STDC_VERSION_FLOAT_H__
+#error "__STDC_VERSION_FLOAT_H__ not defined"
+#endif
+
+#if __STDC_VERSION_FLOAT_H__ != 202311L
+#error "bad value of __STDC_VERSION_FLOAT_H__"
+#endif
diff --git a/gcc/testsuite/gcc.dg/c2x-limits-1.c b/gcc/testsuite/gcc.dg/c2x-limits-1.c
new file mode 100644
index 00000000000..4977faf47b4
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/c2x-limits-1.c
@@ -0,0 +1,13 @@
+/* Test __STDC_VERSION_LIMITS_H__ in C2x.  */
+/* { dg-do preprocess } */
+/* { dg-options "-std=c2x -pedantic-errors" } */
+
+#include <limits.h>
+
+#ifndef __STDC_VERSION_LIMITS_H__
+#error "__STDC_VERSION_LIMITS_H__ not defined"
+#endif
+
+#if __STDC_VERSION_LIMITS_H__ != 202311L
+#error "bad value of __STDC_VERSION_LIMITS_H__"
+#endif
diff --git a/gcc/testsuite/gcc.dg/c2x-stdarg-5.c b/gcc/testsuite/gcc.dg/c2x-stdarg-5.c
new file mode 100644
index 00000000000..134244357bb
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/c2x-stdarg-5.c
@@ -0,0 +1,13 @@
+/* Test __STDC_VERSION_STDARG_H__ in C2x.  */
+/* { dg-do preprocess } */
+/* { dg-options "-std=c2x -pedantic-errors" } */
+
+#include <stdarg.h>
+
+#ifndef __STDC_VERSION_STDARG_H__
+#error "__STDC_VERSION_STDARG_H__ not defined"
+#endif
+
+#if __STDC_VERSION_STDARG_H__ != 202311L
+#error "bad value of __STDC_VERSION_STDARG_H__"
+#endif
diff --git a/gcc/testsuite/gcc.dg/c2x-stdatomic-1.c b/gcc/testsuite/gcc.dg/c2x-stdatomic-1.c
new file mode 100644
index 00000000000..3a9ceb0ea39
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/c2x-stdatomic-1.c
@@ -0,0 +1,13 @@
+/* Test __STDC_VERSION_STDATOMIC_H__ in C2x.  */
+/* { dg-do preprocess } */
+/* { dg-options "-std=c2x -pedantic-errors" } */
+
+#include <stdatomic.h>
+
+#ifndef __STDC_VERSION_STDATOMIC_H__
+#error "__STDC_VERSION_STDATOMIC_H__ not defined"
+#endif
+
+#if __STDC_VERSION_STDATOMIC_H__ != 202311L
+#error "bad value of __STDC_VERSION_STDATOMIC_H__"
+#endif
diff --git a/gcc/testsuite/gcc.dg/c2x-stddef-1.c b/gcc/testsuite/gcc.dg/c2x-stddef-1.c
new file mode 100644
index 00000000000..1ebdf2037ee
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/c2x-stddef-1.c
@@ -0,0 +1,13 @@
+/* Test __STDC_VERSION_STDDEF_H__ in C2x.  */
+/* { dg-do preprocess } */
+/* { dg-options "-std=c2x -pedantic-errors" } */
+
+#include <stddef.h>
+
+#ifndef __STDC_VERSION_STDDEF_H__
+#error "__STDC_VERSION_STDDEF_H__ not defined"
+#endif
+
+#if __STDC_VERSION_STDDEF_H__ != 202311L
+#error "bad value of __STDC_VERSION_STDDEF_H__"
+#endif
diff --git a/gcc/testsuite/gcc.dg/c2x-stdint-1.c b/gcc/testsuite/gcc.dg/c2x-stdint-1.c
new file mode 100644
index 00000000000..3ba6ce56a7a
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/c2x-stdint-1.c
@@ -0,0 +1,13 @@
+/* Test __STDC_VERSION_STDINT_H__ in C2x.  */
+/* { dg-do preprocess } */
+/* { dg-options "-std=c2x -pedantic-errors -ffreestanding" } */
+
+#include <stdint.h>
+
+#ifndef __STDC_VERSION_STDINT_H__
+#error "__STDC_VERSION_STDINT_H__ not defined"
+#endif
+
+#if __STDC_VERSION_STDINT_H__ != 202311L
+#error "bad value of __STDC_VERSION_STDINT_H__"
+#endif

-- 
Joseph S. Myers
joseph@codesourcery.com

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: ginclude: C2x header version macros
  2022-11-12 18:18 ginclude: C2x header version macros Joseph Myers
@ 2022-11-13 12:22 ` Richard Biener
  0 siblings, 0 replies; 2+ messages in thread
From: Richard Biener @ 2022-11-13 12:22 UTC (permalink / raw)
  To: Joseph Myers; +Cc: gcc-patches



> Am 12.11.2022 um 19:18 schrieb Joseph Myers <joseph@codesourcery.com>:
> 
> C2x adds __STDC_VERSION_*_H__ macros to individual headers with
> interface changes compared to C17.  All the new header features in
> headers provided by GCC have now been implemented, so define those
> macros to the value given in the current working draft.
> 
> Bootstrapped with no regressions for x86_64-pc-linux-gnu.  OK to
> commit?

Ok.

Richard 

> gcc/
>    * ginclude/float.h [__STDC_VERSION__ > 201710L]
>    (__STDC_VERSION_FLOAT_H__): New macro.
>    * ginclude/stdarg.h [__STDC_VERSION__ > 201710L]
>    (__STDC_VERSION_STDARG_H__): New macro.
>    * ginclude/stdatomic.h [__STDC_VERSION__ > 201710L]
>    (__STDC_VERSION_STDATOMIC_H__): New macro.
>    * ginclude/stddef.h [__STDC_VERSION__ > 201710L]
>    (__STDC_VERSION_STDDEF_H__): New macro.
>    * ginclude/stdint-gcc.h [__STDC_VERSION__ > 201710L]
>    (__STDC_VERSION_STDINT_H__): New macro.
>    * glimits.h [__STDC_VERSION__ > 201710L]
>    (__STDC_VERSION_LIMITS_H__): New macro.
> 
> gcc/testsuite/
>    * gcc.dg/c11-float-8.c, gcc.dg/c11-limits-1.c,
>    gcc.dg/c11-stdarg-4.c, gcc.dg/c11-stdatomic-3.c,
>    gcc.dg/c11-stddef-1.c, gcc.dg/c11-stdint-1.c,
>    gcc.dg/c2x-float-13.c, gcc.dg/c2x-limits-1.c,
>    gcc.dg/c2x-stdarg-5.c, gcc.dg/c2x-stdatomic-1.c,
>    gcc.dg/c2x-stddef-1.c, gcc.dg/c2x-stdint-1.c: New tests.
> 
> diff --git a/gcc/ginclude/float.h b/gcc/ginclude/float.h
> index bc5439d664f..172b9de477f 100644
> --- a/gcc/ginclude/float.h
> +++ b/gcc/ginclude/float.h
> @@ -624,4 +624,8 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
> 
> #endif /* __DEC32_MANT_DIG__ */
> 
> +#if defined __STDC_VERSION__ && __STDC_VERSION__ > 201710L
> +#define __STDC_VERSION_FLOAT_H__    202311L
> +#endif
> +
> #endif /* _FLOAT_H___ */
> diff --git a/gcc/ginclude/stdarg.h b/gcc/ginclude/stdarg.h
> index c704c9ffcf2..5149f7b3f4f 100644
> --- a/gcc/ginclude/stdarg.h
> +++ b/gcc/ginclude/stdarg.h
> @@ -125,6 +125,10 @@ typedef __gnuc_va_list va_list;
> 
> #endif /* not __svr4__ */
> 
> +#if defined __STDC_VERSION__ && __STDC_VERSION__ > 201710L
> +#define __STDC_VERSION_STDARG_H__    202311L
> +#endif
> +
> #endif /* _STDARG_H */
> 
> #endif /* not _ANSI_STDARG_H_ */
> diff --git a/gcc/ginclude/stdatomic.h b/gcc/ginclude/stdatomic.h
> index a56ba5d9639..e16b072ccde 100644
> --- a/gcc/ginclude/stdatomic.h
> +++ b/gcc/ginclude/stdatomic.h
> @@ -248,4 +248,8 @@ extern void atomic_flag_clear (volatile atomic_flag *);
> extern void atomic_flag_clear_explicit (volatile atomic_flag *, memory_order);
> #define atomic_flag_clear_explicit(PTR, MO)   __atomic_clear ((PTR), (MO))
> 
> +#if defined __STDC_VERSION__ && __STDC_VERSION__ > 201710L
> +#define __STDC_VERSION_STDATOMIC_H__    202311L
> +#endif
> +
> #endif  /* _STDATOMIC_H */
> diff --git a/gcc/ginclude/stddef.h b/gcc/ginclude/stddef.h
> index 2767edf51de..7980045e712 100644
> --- a/gcc/ginclude/stddef.h
> +++ b/gcc/ginclude/stddef.h
> @@ -454,6 +454,7 @@ typedef struct {
> 
> #if defined __STDC_VERSION__ && __STDC_VERSION__ > 201710L
> #define unreachable() (__builtin_unreachable ())
> +#define __STDC_VERSION_STDDEF_H__    202311L
> #endif
> 
> #endif /* _STDDEF_H was defined this time */
> diff --git a/gcc/ginclude/stdint-gcc.h b/gcc/ginclude/stdint-gcc.h
> index 6be01ae28b8..eab651d968a 100644
> --- a/gcc/ginclude/stdint-gcc.h
> +++ b/gcc/ginclude/stdint-gcc.h
> @@ -362,4 +362,8 @@ typedef __UINTMAX_TYPE__ uintmax_t;
> 
> #endif
> 
> +#if defined __STDC_VERSION__ && __STDC_VERSION__ > 201710L
> +#define __STDC_VERSION_STDINT_H__    202311L
> +#endif
> +
> #endif /* _GCC_STDINT_H */
> diff --git a/gcc/glimits.h b/gcc/glimits.h
> index 8d74c8b88d6..994f7e33bbe 100644
> --- a/gcc/glimits.h
> +++ b/gcc/glimits.h
> @@ -156,6 +156,8 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
> # define BOOL_MAX 1
> # undef BOOL_WIDTH
> # define BOOL_WIDTH 1
> +
> +# define __STDC_VERSION_LIMITS_H__    202311L
> #endif
> 
> #endif /* _LIMITS_H___ */
> diff --git a/gcc/testsuite/gcc.dg/c11-float-8.c b/gcc/testsuite/gcc.dg/c11-float-8.c
> new file mode 100644
> index 00000000000..7fb1e0a5683
> --- /dev/null
> +++ b/gcc/testsuite/gcc.dg/c11-float-8.c
> @@ -0,0 +1,9 @@
> +/* Test __STDC_VERSION_FLOAT_H__ not in C11.  */
> +/* { dg-do preprocess } */
> +/* { dg-options "-std=c11 -pedantic-errors" } */
> +
> +#include <float.h>
> +
> +#ifdef __STDC_VERSION_FLOAT_H__
> +#error "__STDC_VERSION_FLOAT_H__ defined"
> +#endif
> diff --git a/gcc/testsuite/gcc.dg/c11-limits-1.c b/gcc/testsuite/gcc.dg/c11-limits-1.c
> new file mode 100644
> index 00000000000..6dc5737024d
> --- /dev/null
> +++ b/gcc/testsuite/gcc.dg/c11-limits-1.c
> @@ -0,0 +1,9 @@
> +/* Test __STDC_VERSION_LIMITS_H__ not in C11.  */
> +/* { dg-do preprocess } */
> +/* { dg-options "-std=c11 -pedantic-errors" } */
> +
> +#include <limits.h>
> +
> +#ifdef __STDC_VERSION_LIMITS_H__
> +#error "__STDC_VERSION_LIMITS_H__ defined"
> +#endif
> diff --git a/gcc/testsuite/gcc.dg/c11-stdarg-4.c b/gcc/testsuite/gcc.dg/c11-stdarg-4.c
> new file mode 100644
> index 00000000000..06bff1f0445
> --- /dev/null
> +++ b/gcc/testsuite/gcc.dg/c11-stdarg-4.c
> @@ -0,0 +1,9 @@
> +/* Test __STDC_VERSION_STDARG_H__ not in C11.  */
> +/* { dg-do preprocess } */
> +/* { dg-options "-std=c11 -pedantic-errors" } */
> +
> +#include <stdarg.h>
> +
> +#ifdef __STDC_VERSION_STDARG_H__
> +#error "__STDC_VERSION_STDARG_H__ defined"
> +#endif
> diff --git a/gcc/testsuite/gcc.dg/c11-stdatomic-3.c b/gcc/testsuite/gcc.dg/c11-stdatomic-3.c
> new file mode 100644
> index 00000000000..1f5a71b6219
> --- /dev/null
> +++ b/gcc/testsuite/gcc.dg/c11-stdatomic-3.c
> @@ -0,0 +1,9 @@
> +/* Test __STDC_VERSION_STDATOMIC_H__ not in C11.  */
> +/* { dg-do preprocess } */
> +/* { dg-options "-std=c11 -pedantic-errors" } */
> +
> +#include <stdatomic.h>
> +
> +#ifdef __STDC_VERSION_STDATOMIC_H__
> +#error "__STDC_VERSION_STDATOMIC_H__ defined"
> +#endif
> diff --git a/gcc/testsuite/gcc.dg/c11-stddef-1.c b/gcc/testsuite/gcc.dg/c11-stddef-1.c
> new file mode 100644
> index 00000000000..9918d9478c4
> --- /dev/null
> +++ b/gcc/testsuite/gcc.dg/c11-stddef-1.c
> @@ -0,0 +1,9 @@
> +/* Test __STDC_VERSION_STDDEF_H__ not in C11.  */
> +/* { dg-do preprocess } */
> +/* { dg-options "-std=c11 -pedantic-errors" } */
> +
> +#include <stddef.h>
> +
> +#ifdef __STDC_VERSION_STDDEF_H__
> +#error "__STDC_VERSION_STDDEF_H__ defined"
> +#endif
> diff --git a/gcc/testsuite/gcc.dg/c11-stdint-1.c b/gcc/testsuite/gcc.dg/c11-stdint-1.c
> new file mode 100644
> index 00000000000..43fe681c7a5
> --- /dev/null
> +++ b/gcc/testsuite/gcc.dg/c11-stdint-1.c
> @@ -0,0 +1,9 @@
> +/* Test __STDC_VERSION_STDINT_H__ not in C11.  */
> +/* { dg-do preprocess } */
> +/* { dg-options "-std=c11 -pedantic-errors -ffreestanding" } */
> +
> +#include <stdint.h>
> +
> +#ifdef __STDC_VERSION_STDINT_H__
> +#error "__STDC_VERSION_STDINT_H__ defined"
> +#endif
> diff --git a/gcc/testsuite/gcc.dg/c2x-float-13.c b/gcc/testsuite/gcc.dg/c2x-float-13.c
> new file mode 100644
> index 00000000000..dc54bc734b3
> --- /dev/null
> +++ b/gcc/testsuite/gcc.dg/c2x-float-13.c
> @@ -0,0 +1,13 @@
> +/* Test __STDC_VERSION_FLOAT_H__ in C2x.  */
> +/* { dg-do preprocess } */
> +/* { dg-options "-std=c2x -pedantic-errors" } */
> +
> +#include <float.h>
> +
> +#ifndef __STDC_VERSION_FLOAT_H__
> +#error "__STDC_VERSION_FLOAT_H__ not defined"
> +#endif
> +
> +#if __STDC_VERSION_FLOAT_H__ != 202311L
> +#error "bad value of __STDC_VERSION_FLOAT_H__"
> +#endif
> diff --git a/gcc/testsuite/gcc.dg/c2x-limits-1.c b/gcc/testsuite/gcc.dg/c2x-limits-1.c
> new file mode 100644
> index 00000000000..4977faf47b4
> --- /dev/null
> +++ b/gcc/testsuite/gcc.dg/c2x-limits-1.c
> @@ -0,0 +1,13 @@
> +/* Test __STDC_VERSION_LIMITS_H__ in C2x.  */
> +/* { dg-do preprocess } */
> +/* { dg-options "-std=c2x -pedantic-errors" } */
> +
> +#include <limits.h>
> +
> +#ifndef __STDC_VERSION_LIMITS_H__
> +#error "__STDC_VERSION_LIMITS_H__ not defined"
> +#endif
> +
> +#if __STDC_VERSION_LIMITS_H__ != 202311L
> +#error "bad value of __STDC_VERSION_LIMITS_H__"
> +#endif
> diff --git a/gcc/testsuite/gcc.dg/c2x-stdarg-5.c b/gcc/testsuite/gcc.dg/c2x-stdarg-5.c
> new file mode 100644
> index 00000000000..134244357bb
> --- /dev/null
> +++ b/gcc/testsuite/gcc.dg/c2x-stdarg-5.c
> @@ -0,0 +1,13 @@
> +/* Test __STDC_VERSION_STDARG_H__ in C2x.  */
> +/* { dg-do preprocess } */
> +/* { dg-options "-std=c2x -pedantic-errors" } */
> +
> +#include <stdarg.h>
> +
> +#ifndef __STDC_VERSION_STDARG_H__
> +#error "__STDC_VERSION_STDARG_H__ not defined"
> +#endif
> +
> +#if __STDC_VERSION_STDARG_H__ != 202311L
> +#error "bad value of __STDC_VERSION_STDARG_H__"
> +#endif
> diff --git a/gcc/testsuite/gcc.dg/c2x-stdatomic-1.c b/gcc/testsuite/gcc.dg/c2x-stdatomic-1.c
> new file mode 100644
> index 00000000000..3a9ceb0ea39
> --- /dev/null
> +++ b/gcc/testsuite/gcc.dg/c2x-stdatomic-1.c
> @@ -0,0 +1,13 @@
> +/* Test __STDC_VERSION_STDATOMIC_H__ in C2x.  */
> +/* { dg-do preprocess } */
> +/* { dg-options "-std=c2x -pedantic-errors" } */
> +
> +#include <stdatomic.h>
> +
> +#ifndef __STDC_VERSION_STDATOMIC_H__
> +#error "__STDC_VERSION_STDATOMIC_H__ not defined"
> +#endif
> +
> +#if __STDC_VERSION_STDATOMIC_H__ != 202311L
> +#error "bad value of __STDC_VERSION_STDATOMIC_H__"
> +#endif
> diff --git a/gcc/testsuite/gcc.dg/c2x-stddef-1.c b/gcc/testsuite/gcc.dg/c2x-stddef-1.c
> new file mode 100644
> index 00000000000..1ebdf2037ee
> --- /dev/null
> +++ b/gcc/testsuite/gcc.dg/c2x-stddef-1.c
> @@ -0,0 +1,13 @@
> +/* Test __STDC_VERSION_STDDEF_H__ in C2x.  */
> +/* { dg-do preprocess } */
> +/* { dg-options "-std=c2x -pedantic-errors" } */
> +
> +#include <stddef.h>
> +
> +#ifndef __STDC_VERSION_STDDEF_H__
> +#error "__STDC_VERSION_STDDEF_H__ not defined"
> +#endif
> +
> +#if __STDC_VERSION_STDDEF_H__ != 202311L
> +#error "bad value of __STDC_VERSION_STDDEF_H__"
> +#endif
> diff --git a/gcc/testsuite/gcc.dg/c2x-stdint-1.c b/gcc/testsuite/gcc.dg/c2x-stdint-1.c
> new file mode 100644
> index 00000000000..3ba6ce56a7a
> --- /dev/null
> +++ b/gcc/testsuite/gcc.dg/c2x-stdint-1.c
> @@ -0,0 +1,13 @@
> +/* Test __STDC_VERSION_STDINT_H__ in C2x.  */
> +/* { dg-do preprocess } */
> +/* { dg-options "-std=c2x -pedantic-errors -ffreestanding" } */
> +
> +#include <stdint.h>
> +
> +#ifndef __STDC_VERSION_STDINT_H__
> +#error "__STDC_VERSION_STDINT_H__ not defined"
> +#endif
> +
> +#if __STDC_VERSION_STDINT_H__ != 202311L
> +#error "bad value of __STDC_VERSION_STDINT_H__"
> +#endif
> 
> -- 
> Joseph S. Myers
> joseph@codesourcery.com

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2022-11-13 12:22 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-11-12 18:18 ginclude: C2x header version macros Joseph Myers
2022-11-13 12:22 ` Richard Biener

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).