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

--- Comment #14 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Martin Uecker <uec...@gcc.gnu.org>:

https://gcc.gnu.org/g:a3382d9d675f42db96a51d902afc49a0a4cfadee

commit r15-9315-ga3382d9d675f42db96a51d902afc49a0a4cfadee
Author: Martin Uecker <uec...@tugraz.at>
Date:   Fri Apr 4 21:01:48 2025 +0200

    c: fix checking for a tag for variably modified tagged types [PR119612]

    The checking assertion added for PR118765 did not take into account
    that add_decl_expr can change TYPE_NAME to a TYPE_DECL with no name
    for certain cases of variably modified types.  This also implies that we
    might sometimes not reliably detect the absence of a tag when only
    considering TYPE_NAME.  This patch introduces a new helper function
    c_type_tag to reliable compute the tag for a tagged types and uses it
    for code where the switch to C23 may cause regressions.

            PR c/119612

    gcc/c/ChangeLog:
            * c-tree.h (c_type_tag): Add prototype.
            * c-typeck.cc (c_type_tag): New function.
            (tagged_types_tu_compatible_p, composite_type_internal): Use
            c_type_tag.
            * c-decl.cc (c_struct_hasher::hash, previous_tag): Use c_type_tag.

    gcc/testsuite/ChangeLog:
            * gcc.dg/gnu23-tag-6.c: New test.
            * gcc.dg/pr119612.c: New test.

Reply via email to