diff --git a/gcc/c-family/c-opts.cc b/gcc/c-family/c-opts.cc index 127f9553e0c..3f2cabf9448 100644 --- a/gcc/c-family/c-opts.cc +++ b/gcc/c-family/c-opts.cc @@ -261,8 +261,8 @@ c_common_init_options (unsigned int decoded_options_count, if (c_language == clk_c) { - /* The default for C is gnu17. */ - set_std_c17 (false /* ISO */); + /* The default for C is gnu23. */ + set_std_c23 (false /* ISO */); /* If preprocessing assembly language, accept any of the C-family front end options since the driver may pass them through. */ diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index 36d79d1c76b..929feaf23fb 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -2501,11 +2501,12 @@ The name @samp{gnu1x} is deprecated. @item gnu17 @itemx gnu18 -GNU dialect of ISO C17. This is the default for C code. +GNU dialect of ISO C17. @item gnu23 @itemx gnu2x -GNU dialect of ISO C23. The name @samp{gnu2x} is deprecated. +GNU dialect of ISO C23. This is the default for C code. The name +@samp{gnu2x} is deprecated. @item gnu2y The next version of the ISO C standard, still under development, plus diff --git a/gcc/testsuite/c-c++-common/analyzer/asm-x86-dyndbg-2.c b/gcc/testsuite/c-c++-common/analyzer/asm-x86-dyndbg-2.c index d5e748c9acd..db77ce9a4f9 100644 --- a/gcc/testsuite/c-c++-common/analyzer/asm-x86-dyndbg-2.c +++ b/gcc/testsuite/c-c++-common/analyzer/asm-x86-dyndbg-2.c @@ -8,12 +8,6 @@ /* Adapted from various files in the Linux kernel, all of which have: */ /* SPDX-License-Identifier: GPL-2.0 */ -#ifndef __cplusplus - typedef _Bool bool; - #define true 1 - #define false 0 -#endif - typedef struct {} atomic_t; /* Adapted from include/linux/compiler_attributes.h */ diff --git a/gcc/testsuite/c-c++-common/analyzer/asm-x86-lp64-2.c b/gcc/testsuite/c-c++-common/analyzer/asm-x86-lp64-2.c index 37c487a69c2..5d32c9a66c3 100644 --- a/gcc/testsuite/c-c++-common/analyzer/asm-x86-lp64-2.c +++ b/gcc/testsuite/c-c++-common/analyzer/asm-x86-lp64-2.c @@ -3,10 +3,6 @@ /* Adapted from Linux x86: page_ref_dec_and_test.c (GPL-2.0). */ -#ifndef __cplusplus - typedef _Bool bool; -#endif - typedef struct { int counter; } atomic_t; diff --git a/gcc/testsuite/c-c++-common/analyzer/attr-malloc-CVE-2019-19078-usb-leak.c b/gcc/testsuite/c-c++-common/analyzer/attr-malloc-CVE-2019-19078-usb-leak.c index 24fb46bd5a9..87ad42a3c32 100644 --- a/gcc/testsuite/c-c++-common/analyzer/attr-malloc-CVE-2019-19078-usb-leak.c +++ b/gcc/testsuite/c-c++-common/analyzer/attr-malloc-CVE-2019-19078-usb-leak.c @@ -4,10 +4,6 @@ typedef unsigned char u8; typedef unsigned short u16; -#ifndef __cplusplus - typedef _Bool bool; -#endif - #define ENOMEM 12 #define EINVAL 22 diff --git a/gcc/testsuite/c-c++-common/analyzer/coreutils-cksum-pr108664.c b/gcc/testsuite/c-c++-common/analyzer/coreutils-cksum-pr108664.c index 7ae4e6b06be..67dcbce09d0 100644 --- a/gcc/testsuite/c-c++-common/analyzer/coreutils-cksum-pr108664.c +++ b/gcc/testsuite/c-c++-common/analyzer/coreutils-cksum-pr108664.c @@ -8,10 +8,6 @@ typedef unsigned int __uint32_t; typedef unsigned long int __uintmax_t; typedef struct _IO_FILE FILE; -#ifndef __cplusplus - typedef _Bool bool; -#endif - extern size_t fread_unlocked(void* __restrict __ptr, size_t __size, diff --git a/gcc/testsuite/c-c++-common/analyzer/feasibility-3.c b/gcc/testsuite/c-c++-common/analyzer/feasibility-3.c index 06194f85069..06aed88b5e8 100644 --- a/gcc/testsuite/c-c++-common/analyzer/feasibility-3.c +++ b/gcc/testsuite/c-c++-common/analyzer/feasibility-3.c @@ -6,9 +6,6 @@ /* Types. */ typedef unsigned char u8; -#ifndef __cplusplus -typedef _Bool bool; -#endif typedef unsigned int gfp_t; struct file; diff --git a/gcc/testsuite/c-c++-common/analyzer/pr105783.c b/gcc/testsuite/c-c++-common/analyzer/pr105783.c index f17519415ce..34d21c62aef 100644 --- a/gcc/testsuite/c-c++-common/analyzer/pr105783.c +++ b/gcc/testsuite/c-c++-common/analyzer/pr105783.c @@ -1,9 +1,5 @@ /* { dg-additional-options "-O" } */ -#ifndef __cplusplus -typedef _Bool bool; -#endif - struct ss_s { union out_or_counting_u { char *newstr; diff --git a/gcc/testsuite/c-c++-common/analyzer/sock-1.c b/gcc/testsuite/c-c++-common/analyzer/sock-1.c index e5e2f23bba0..57938c0c0ab 100644 --- a/gcc/testsuite/c-c++-common/analyzer/sock-1.c +++ b/gcc/testsuite/c-c++-common/analyzer/sock-1.c @@ -5,9 +5,6 @@ typedef __u32 u32; typedef __s64 s64; typedef __u64 u64; typedef long long __kernel_time64_t; -#ifndef __cplusplus -typedef _Bool bool; -#endif typedef __s64 time64_t; struct __kernel_timespec { __kernel_time64_t tv_sec; diff --git a/gcc/testsuite/c-c++-common/attributes-4.c b/gcc/testsuite/c-c++-common/attributes-4.c index 55661eb792c..d78cdae2e11 100644 --- a/gcc/testsuite/c-c++-common/attributes-4.c +++ b/gcc/testsuite/c-c++-common/attributes-4.c @@ -11,7 +11,6 @@ typedef __CHAR16_TYPE__ char16_t; typedef __CHAR32_TYPE__ char32_t; #elif !__cplusplus -typedef _Bool bool; typedef __CHAR16_TYPE__ char16_t; typedef __CHAR32_TYPE__ char32_t; typedef __WCHAR_TYPE__ wchar_t; diff --git a/gcc/testsuite/gcc.dg/Warray-bounds-78.c b/gcc/testsuite/gcc.dg/Warray-bounds-78.c index 73c335fd8a6..26b8a9bf9fe 100644 --- a/gcc/testsuite/gcc.dg/Warray-bounds-78.c +++ b/gcc/testsuite/gcc.dg/Warray-bounds-78.c @@ -3,8 +3,6 @@ { dg-do compile } { dg-options "-O2 -Wall -Wno-strict-aliasing" } */ -typedef _Bool bool; - #define NOIPA __attribute__ ((noipa)) struct S { }; diff --git a/gcc/testsuite/gcc.dg/analyzer/asm-x86-dyndbg-1.c b/gcc/testsuite/gcc.dg/analyzer/asm-x86-dyndbg-1.c index cce3f6b80bc..9ea86206fd8 100644 --- a/gcc/testsuite/gcc.dg/analyzer/asm-x86-dyndbg-1.c +++ b/gcc/testsuite/gcc.dg/analyzer/asm-x86-dyndbg-1.c @@ -8,10 +8,6 @@ /* Adapted from various files in the Linux kernel, all of which have: */ /* SPDX-License-Identifier: GPL-2.0 */ -typedef _Bool bool; -#define true 1 -#define false 0 - typedef struct { int counter; } atomic_t; diff --git a/gcc/testsuite/gcc.dg/debug/ctf/ctf-function-pointers-2.c b/gcc/testsuite/gcc.dg/debug/ctf/ctf-function-pointers-2.c index 80b9c188cee..55c73873a84 100644 --- a/gcc/testsuite/gcc.dg/debug/ctf/ctf-function-pointers-2.c +++ b/gcc/testsuite/gcc.dg/debug/ctf/ctf-function-pointers-2.c @@ -4,7 +4,7 @@ different function pointer types. */ /* { dg-do compile } */ -/* { dg-options "-O0 -gctf -dA" } */ +/* { dg-options "-O0 -gctf -dA -std=gnu17" } */ /* { dg-final { scan-assembler-times "\[\t \]0x16000001\[\t \]+\[^\n\]*ctt_info" 1 } } */ /* { dg-final { scan-assembler-times "ascii \"rcu_callback_t.0\"\[\t \]+\[^\n\]*ctf_string" 1 } } */ /* { dg-final { scan-assembler-times "ascii \"func.0\"\[\t \]+\[^\n\]*ctf_string" 1 } } */ diff --git a/gcc/testsuite/gcc.dg/gnu23-version-2.c b/gcc/testsuite/gcc.dg/gnu23-version-2.c new file mode 100644 index 00000000000..008f445ecdf --- /dev/null +++ b/gcc/testsuite/gcc.dg/gnu23-version-2.c @@ -0,0 +1,11 @@ +/* Test __STDC_VERSION__ for C23 with GNU extensions. Test that -std=gnu23 is + the default (replace this test when updating the default to a later version + than gnu23). */ +/* { dg-do compile } */ +/* { dg-options "" } */ + +#if __STDC_VERSION__ == 202311L +int i; +#else +#error "Bad __STDC_VERSION__." +#endif diff --git a/gcc/testsuite/gcc.dg/simulate-thread/atomic-load-int.c b/gcc/testsuite/gcc.dg/simulate-thread/atomic-load-int.c index a40c3ddcb31..9f75cedd023 100644 --- a/gcc/testsuite/gcc.dg/simulate-thread/atomic-load-int.c +++ b/gcc/testsuite/gcc.dg/simulate-thread/atomic-load-int.c @@ -49,6 +49,7 @@ unsigned int table[16] = { int table_cycle_size = 16; /* Return 0 if 'result' is a valid value to have loaded. */ +__attribute__((noinline)) int verify_result () { int x; @@ -69,6 +70,7 @@ int verify_result () } /* Iterate VALUE through the different valid values. */ +__attribute__((noinline)) void simulate_thread_other_threads () { static int current = 0; @@ -78,11 +80,13 @@ void simulate_thread_other_threads () value = table[current]; } +__attribute__((noinline)) int simulate_thread_step_verify () { return verify_result (); } +__attribute__((noinline)) int simulate_thread_final_verify () { return verify_result (); diff --git a/gcc/testsuite/gcc.dg/simulate-thread/atomic-load-longlong.c b/gcc/testsuite/gcc.dg/simulate-thread/atomic-load-longlong.c index 524b9845b91..6c3b3a3981f 100644 --- a/gcc/testsuite/gcc.dg/simulate-thread/atomic-load-longlong.c +++ b/gcc/testsuite/gcc.dg/simulate-thread/atomic-load-longlong.c @@ -51,6 +51,7 @@ unsigned long long table[16] = { int table_cycle_size = 16; /* Return 0 if 'result' is a valid value to have loaded. */ +__attribute__((noinline)) int verify_result () { int x; @@ -71,6 +72,7 @@ int verify_result () } /* Iterate VALUE through the different valid values. */ +__attribute__((noinline)) void simulate_thread_other_threads () { static int current = 0; @@ -80,11 +82,13 @@ void simulate_thread_other_threads () value = table[current]; } +__attribute__((noinline)) int simulate_thread_step_verify () { return verify_result (); } +__attribute__((noinline)) int simulate_thread_final_verify () { return verify_result (); diff --git a/gcc/testsuite/gcc.dg/simulate-thread/atomic-load-short.c b/gcc/testsuite/gcc.dg/simulate-thread/atomic-load-short.c index 62690cea5f8..53b8c084eb3 100644 --- a/gcc/testsuite/gcc.dg/simulate-thread/atomic-load-short.c +++ b/gcc/testsuite/gcc.dg/simulate-thread/atomic-load-short.c @@ -49,6 +49,7 @@ unsigned short table[16] = { int table_cycle_size = 16; /* Return 0 if 'result' is a valid value to have loaded. */ +__attribute__((noinline)) int verify_result () { int x; @@ -69,6 +70,7 @@ int verify_result () } /* Iterate VALUE through the different valid values. */ +__attribute__((noinline)) void simulate_thread_other_threads () { static int current = 0; @@ -78,11 +80,13 @@ void simulate_thread_other_threads () value = table[current]; } +__attribute__((noinline)) int simulate_thread_step_verify () { return verify_result (); } +__attribute__((noinline)) int simulate_thread_final_verify () { return verify_result (); diff --git a/gcc/testsuite/gcc.dg/torture/pr117496-1.c b/gcc/testsuite/gcc.dg/torture/pr117496-1.c index f35d13dfa85..d68286ef772 100644 --- a/gcc/testsuite/gcc.dg/torture/pr117496-1.c +++ b/gcc/testsuite/gcc.dg/torture/pr117496-1.c @@ -1,4 +1,5 @@ /* { dg-do compile } */ +/* { dg-additional-options "-std=gnu17" } */ /* PR tree-optimization/117496 */