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

--- Comment #2 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Jakub Jelinek <ja...@gcc.gnu.org>:

https://gcc.gnu.org/g:7ecf468c9a30b5a6da86812b912fe3368437c8b9

commit r15-8446-g7ecf468c9a30b5a6da86812b912fe3368437c8b9
Author: Jakub Jelinek <ja...@redhat.com>
Date:   Wed Mar 19 19:21:38 2025 +0100

    c: pedwarn on flexible array member initialization with {} for C23+
[PR119350]

    Even in C23/C2Y any initialization of flexible array member is still
    invalid, so we should emit a pedwarn on it.  But we no longer do for
    initialization with {}.  The reason is that for C17 and earlier,
    we already emitted a pedwarn on the {} initializer and so emitting
    another pedwarn on the flexible array member initialization would
    be diagnosing the same thing multiple times.

    In C23 we no longer pedwarn on {}, it is standard.
    The following patch arranges a pedwarning for that for C23+, so that
    at least one pedwarning is emitted.

    So that we don't "regress" from C17 to C23 on nested flexible array
    member initialization with no -pedantic/-pedantic-errors/-Wpedantic,
    the patch emits even the
    initialization of flexible array member in a nested context
    diagnostic as pedwarn in the {} case, after all, it doesn't cause
    much trouble, we just ignore it like before, it wouldn't initialize
    anything.

    2025-03-19  Jakub Jelinek  <ja...@redhat.com>

            PR c/119350
            * c-typeck.cc (pop_init_level): Don't ignore empty brackets for
            flag_isoc23, still set constructor_type to NULL in that case but
            emit a pedwarn_init in that case.

            * gcc.dg/pr119350-1.c: New test.
            * gcc.dg/pr119350-2.c: New test.
            * gcc.dg/pr119350-3.c: New test.

Reply via email to