[foreign-jextract] No code generated for structs inside union

sundararajan.athijegannathan at oracle.com sundararajan.athijegannathan at oracle.com
Thu Aug 6 14:41:57 UTC 2020


Filed: https://bugs.openjdk.java.net/browse/JDK-8251256

-Sundar

On 06/08/20 7:57 pm, Maurizio Cimadamore wrote:
>
> On 06/08/2020 14:25, Filip Krakowski wrote:
>> Hi,
>>
>> it seems that jextract does not generate code for structs declared 
>> within unions. Tested with "ibv_send_wr" shown on the following man 
>> page.
>>
>> https://linux.die.net/man/3/ibv_post_send
>>
>> Although it is possible to get a MemorySegment for "wr", it's rather 
>> difficult to work with it without having its corresponding 
>> MemoryLayout. In this case it is relatively important to access the 
>> fields of the structs in the union, as these describe how an 
>> operation is to be executed.
>
> Yeah - this seems a bug.
>
> It's not just unions - even nested structs are not handled correctly:
>
> struct Foo {
>    struct {
>       int x;
>       int y;
>    } field;
> };
>
> Here there's just a getter/setter for "field". Seems like jextract 
> does not recurse on nested structs/unions.
>
> Ideally we should have bulk getter/setters (e.g. "field"), as well as 
> dedicated field getter setters (e.g. "field.x"), either in same Foo 
> interface, or in separate interfaces.
>
> Maurizio
>
>>
>> Best regards,
>> Filip


More information about the panama-dev mailing list