diff options
author | Joseph Myers <josmyers@redhat.com> | 2024-11-15 23:42:59 +0000 |
---|---|---|
committer | Joseph Myers <josmyers@redhat.com> | 2024-11-15 23:45:57 +0000 |
commit | 55e3bd376b2214e200fa76d12b67ff259b06c212 (patch) | |
tree | 011f4db317098eaf35429d6fb8acba98027ba67c /gcc/testsuite/c-c++-common/analyzer | |
parent | f242f79b8afeec58477e99c44530bd503878c6d5 (diff) | |
download | gcc-55e3bd376b2214e200fa76d12b67ff259b06c212.zip gcc-55e3bd376b2214e200fa76d12b67ff259b06c212.tar.gz gcc-55e3bd376b2214e200fa76d12b67ff259b06c212.tar.bz2 |
c: Default to -std=gnu23
Change the default language version for C compilation from -std=gnu17
to -std=gnu23. A few tests are updated to remove local definitions of
bool, true and false (where making such an unconditional test change
seemed to make more sense than changing the test conditionally earlier
or building it with -std=gnu17); most test issues were already
addressed in previous patches. In the case of
ctf-function-pointers-2.c, it was agreed in bug 117289 that it would
be OK to put -std=gnu17 in the test and leave more optimal BTF / CTF
output for this test as a potential future improvement.
Since the original test fixes, more such fixes have become necessary
and so are included in this patch. More noinline attributes are added
to simulate-thread tests where () meaning a prototype affected test
results, while gcc.dg/torture/pr117496-1.c (a test declaring a
function with () then calling it with arguments) gets -std=gnu17
added.
Bootstrapped with no regressions for x86_64-pc-linux-gnu.
NOTE: it's likely there are target-specific tests for non-x86 targets
that need updating as a result of this change. See commit
9fb5348e3021021e82d75e4ca4e6f8d51a34c24f ("testsuite: Prepare for
-std=gnu23 default") for examples of changes to prepare the testsuite
to work with a -std=gnu23 default. In most cases, adding
-Wno-old-style-definition (for warnings for old-style function
definitions) or -std=gnu17 (for other issues such as unprototyped
function declarations with ()) is appropriate, but watch out for cases
that indicate bugs with -std=gnu23 (in particular, any ICEs - there
was only the one nested function test where I had to fix an ICE on
x86_64).
gcc/
* doc/invoke.texi (-std=gnu17, -std=gnu23): Document -std=gnu23 as
default for C code.
gcc/c-family/
* c-opts.cc (c_common_init_options): Default to C23.
gcc/testsuite/
* c-c++-common/analyzer/asm-x86-dyndbg-2.c,
c-c++-common/analyzer/asm-x86-lp64-2.c,
c-c++-common/analyzer/attr-malloc-CVE-2019-19078-usb-leak.c,
c-c++-common/analyzer/coreutils-cksum-pr108664.c,
c-c++-common/analyzer/feasibility-3.c,
c-c++-common/analyzer/pr105783.c, c-c++-common/analyzer/sock-1.c,
c-c++-common/attributes-4.c, gcc.dg/Warray-bounds-78.c,
gcc.dg/analyzer/asm-x86-dyndbg-1.c: Do not define bool, true or
false.
* gcc.dg/debug/ctf/ctf-function-pointers-2.c: Use -std-gnu17.
* gcc.dg/gnu23-version-2.c: New test.
* gcc.dg/simulate-thread/atomic-load-int.c,
gcc.dg/simulate-thread/atomic-load-longlong.c,
gcc.dg/simulate-thread/atomic-load-short.c: Add more noinline
attributes.
* gcc.dg/torture/pr117496-1.c: Use -std=gnu17.
Diffstat (limited to 'gcc/testsuite/c-c++-common/analyzer')
7 files changed, 0 insertions, 28 deletions
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 d5e748c..db77ce9 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 37c487a..5d32c9a 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 24fb46b..87ad42a 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 7ae4e6b..67dcbce 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 06194f8..06aed88 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 f175194..34d21c6 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 e5e2f23b..57938c0 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; |