https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117289

--- Comment #6 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Joseph Myers <js...@gcc.gnu.org>:

https://gcc.gnu.org/g:55e3bd376b2214e200fa76d12b67ff259b06c212

commit r15-5327-g55e3bd376b2214e200fa76d12b67ff259b06c212
Author: Joseph Myers <josmy...@redhat.com>
Date:   Fri Nov 15 23:42:59 2024 +0000

    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.

Reply via email to