[foreign-abi] [Rev 02] RFR: 8245988: Add a special VaList carrier

Maurizio Cimadamore mcimadamore at openjdk.java.net
Thu Jun 4 12:56:24 UTC 2020


On Thu, 4 Jun 2020 12:14:45 GMT, Jorn Vernee <jvernee at openjdk.org> wrote:

>> Hi,
>> 
>> This patch adds a special VaList carrier to CSupport that can be used by C linker implementations to pass `va_list`
>> arguments to upcalls and downcalls.
>> Currently Windows VaList and SysV VaLists are implemented, but AArach64 not yet.
>> 
>> The API for the Reader and Builder might be a bit strange; the limitation to int, long, and double comes from the
>> standard argument promotions that are done in C when calling a variadic function. Since we do not know how to promote
>> any arbitrary value, at least for now the API restricts itself to accepting only types that would not be promoted in C,
>> leaving any needed conversion up to the user.  For reviewers; I moved CallArranger.TypeClass + classification code to
>> the top level, since it is now shared with the VaList implementations, so that's where the CallArranger diff comes
>> from.  Thanks, Jorn
>
> Jorn Vernee has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Rename VaList and VaList.Builder methods for adding and reading arguments per review.

Looks good.
As an extra test (in a separate change) I think it would be worthwhile to stress test by adding a StdLibTest for
vsnprintf too (we have printf now).

-------------

Marked as reviewed by mcimadamore (Committer).

PR: https://git.openjdk.java.net/panama-foreign/pull/184


More information about the panama-dev mailing list