This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: RFC: Update Intel386, x86-64 and IA MCU psABIs for passing/returning empty struct


On Fri, Feb 12, 2016 at 6:58 AM, Matthijs van Duin
<matthijsvanduin@gmail.com> wrote:
> On 11 February 2016 at 16:31, H.J. Lu <hjl.tools@gmail.com> wrote:
>> struct A {
>> static void foo (void) ();
>> static int xxx;
>> };
>
> What about it? It's an empty struct.  (And it declares a function and
> a variable in the namespace of A, which however do not have any
> relevant impact here.)
>

Thanks for all the feedbacks.  Here is the new proposal:

1. "empty type".  An empty type is a trivially-copyable aggregate
occupying zero bytes (excluding any padding).
2. No memory slot nor register should be used to pass or return an object
of empty type.

Footnote: Array of empty type can only passed by reference in C/C++.


-- 
H.J.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]