On Mon, May 31, 2021 at 11:13:22AM +0200, Richard Biener wrote: > On Mon, May 31, 2021 at 10:29 AM Jakub Jelinek via Gcc-patches > <gcc-patches@gcc.gnu.org> wrote: > > > > On Sun, May 30, 2021 at 11:30:25PM -0700, apinski--- via Gcc-patches wrote: > > > +static bool > > > +zero_sized_decl (const_tree decl) > > > +{ > > > + if (!decl) > > > + return true; > > > + > > > + tree type = TREE_TYPE (decl); > > > + if (AGGREGATE_TYPE_P (type) && TYPE_SIZE (type) > > > + && integer_zerop (TYPE_SIZE (type))) > > > > Shouldn't this be instead > > if (AGGREGATE_TYPE_P (type) > > && !TREE_ADDRESSABLE (type) > > && is_empty_type (type)) > > ? > > It shouldn't matter if the type has zero size (e.g. typically in C) or > > non-zero size (typically in C++), but that returning it is a nop, no bits > > need to be copied anywhere. > > But does !TREE_ADDRESSABLE matter?
Likely the FEs should pass it by hidden reference in that case already, true. Jakub