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

--- Comment #5 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The trunk branch has been updated by Andrew Pinski <pins...@gcc.gnu.org>:

https://gcc.gnu.org/g:21c7aab09805d0c8c7695c8a69c8715d673a739a

commit r13-1990-g21c7aab09805d0c8c7695c8a69c8715d673a739a
Author: Andrew Pinski <apin...@marvell.com>
Date:   Mon Dec 20 20:27:33 2021 -0800

    Fix middle-end/103645: empty struct store not removed when using compound
literal

    For compound literals empty struct stores are not removed as they go down a
    different path of the gimplifier; trying to optimize the init constructor.
    This fixes the problem by not adding the gimple assignment at the end
    of gimplify_init_constructor if it was an empty type.

    Note this updates gcc.dg/pr87052.c where we had:
    const char d[0] = { };
    And was expecting a store to d but after this, there is no store
    as the decl's type is zero in size.

    OK? Bootstrapped and tested on x86_64-linux-gnu with no regressions.

    gcc/ChangeLog:

            PR middle-end/103645
            * gimplify.cc (gimplify_init_constructor): Don't build/add
            gimple assignment of an empty type.

    gcc/testsuite/ChangeLog:
            * gcc.dg/pr87052.c: Update d var to expect nothing.

Reply via email to