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.