Hi, On Sat, 20 Feb 2016, Richard Smith wrote:
> > An empty type is a type where it and all of its subobjects > > (recursively) are of class, structure, union, or array type. > > > > doesn't cover "trivially-copyable". > > That's correct. Whether a type is trivially copyable is unrelated to > whether it is empty. I would still feel more comfortable to include the restriction to trivially copyable types, not in the part of definition of empty type, of course, but as part of the restrictions of when a type can be passed in no registers. Basically to clarify the intent in the psABI if there's any doubt. I.e. like so: --- An empty type is a type where it and all of its subobjects (recursively) are of class, structure, union, or array type. No memory slot nor register should be used to pass or return an object of empty type that's trivially copyable. --- (With possibly a self-sufficient definition of trivially copyable, that's language agnostic) Ciao, Michael.