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

H.J. Lu via cfe-commits cfe-commits at lists.llvm.org
Sun Feb 7 11:40:55 PST 2016


On Sun, Feb 7, 2016 at 11:36 AM, H.J. Lu <hjl.tools at gmail.com> wrote:
> On Sun, Feb 7, 2016 at 11:31 AM, Florian Weimer <fw at deneb.enyo.de> wrote:
>> * H. J. Lu:
>>
>>> I am proposing to update Intel386, x86-64 and IA MCU psABIs to specify
>>> how to pass/return empty struct:
>>>
>>> 1. "collection".  A collection is a structure, union or C++ class.
>>> 2. "empty collection".  An empty collection is:
>>>    a. A collection without member.  Or
>>>    b. A collection with only empty collections.  Or
>>>    c. An array of empty collections.
>>> 3. "empty record".  An empty record is Plain Old Data (POD) for the purpose
>>>    of layout and
>>>    a. A collection without member.  Or
>>>    b. A collection with only empty collections.
>>> 4. No memory slot nor register should be used to pass or return an object of
>>> empty collection.
>>
>> “Aggregate” may be the more standard term instead of collection.
>
> Aggregate also include array, which is excluded here.
>
>> I think you mean “empty record” under 4.
>
> Yes. I will fix it.

This typo isn't in the proposed x86 psABIs:

https://github.com/hjl-tools/x86-psABI/wiki/X86-psABI

which has "No memory slot nor register should be used to pass or return an
object of empty record."



H.J.


More information about the cfe-commits mailing list