[foreign] RFR 8217784: Ignore anonymous bitfields so they are handled as padding
Maurizio Cimadamore
maurizio.cimadamore at oracle.com
Fri Jan 25 21:24:53 UTC 2019
The patch is functionally good, I just wonder if it's too magic - e.g.
wouldn't be better if the record computer processed the anonymous
bitfield (so that the correct padding can be added) instead of relying
on the right thing to happen (which will be fragile if e.g. the impl
changes a bit) ?
Maurizio
On 25/01/2019 19:18, Jorn Vernee wrote:
> Good catch. I kinda glossed over unions since I thought there would be
> no point in having anonymous bitfields in a union, since there is no
> need for padding - but on second thought, these could be used to
> manually widen the type. Any ways, the compiler seems to allow
> anonymous bitfields in unions, so it's good to support that as well.
>
> Updated webrev:
> http://cr.openjdk.java.net/~jvernee/panama/webrevs/8217784/webrev.01/
>
> Jorn
>
> Maurizio Cimadamore schreef op 2019-01-25 19:25:
>> Looks good - but what happens with unions? I'm worried we'd get a
>> similar failure there...
>>
>> Maurizio
>>
>> On 25/01/2019 13:52, Jorn Vernee wrote:
>>> Hi,
>>>
>>> From the bug description:
>>>
>>> Jextract fails on the following example:
>>>
>>> ```
>>> struct Foo {
>>> unsigned int x: 1;
>>> int :7;
>>> unsigned int y: 8;
>>> int :16;
>>> int z;
>>> };
>>> ```
>>>
>>> The current code tries to look up the second field, but because it
>>> has no name this throws an illegal field name error.
>>>
>>> ---
>>>
>>> I've fixed this by ignoring anonymous bitfields, since the
>>> StructLayoutComputer inserts padding automatically before the next
>>> field.
>>>
>>> Please review the following.
>>>
>>> Bug: https://bugs.openjdk.java.net/browse/JDK-8217784
>>> Webrev:
>>> http://cr.openjdk.java.net/~jvernee/panama/webrevs/8217784/webrev.00/
>>>
>>> Thanks,
>>> Jorn
More information about the panama-dev
mailing list