From eb1d068beeaaa420b558595751295eec35ad0c3c Mon Sep 17 00:00:00 2001 From: Eugen Wissner Date: Sat, 12 Sep 2026 00:18:11 +0200 Subject: Support variadic extern procedures --- testsuite/runnable/aligned_attribute.elna | 8 ++++---- testsuite/runnable/varargs.elna | 16 ++++++++++++++++ 2 files changed, 20 insertions(+), 4 deletions(-) create mode 100644 testsuite/runnable/varargs.elna (limited to 'testsuite/runnable') diff --git a/testsuite/runnable/aligned_attribute.elna b/testsuite/runnable/aligned_attribute.elna index 330847e..45c0c37 100644 --- a/testsuite/runnable/aligned_attribute.elna +++ b/testsuite/runnable/aligned_attribute.elna @@ -5,20 +5,20 @@ type end Spread = record - a, #aligned(8) b: Word8 + a, b #{aligned 8}: Word8 end Packed = record a: Word8; - #aligned(1) wide: Word + wide #{aligned 1}: Word end - Over = #aligned(16) record + Over = record #{aligned 16} a: Word8 end var - #aligned(32) tuned: Word8 + tuned #{aligned 32}: Word8 spread: Spread first: ^Word8 second: ^Word8 diff --git a/testsuite/runnable/varargs.elna b/testsuite/runnable/varargs.elna new file mode 100644 index 0000000..feeb94b --- /dev/null +++ b/testsuite/runnable/varargs.elna @@ -0,0 +1,16 @@ +var + buffer: [8]Word8 + written: Int32 + +proc snprintf(buffer: ^Word8; size: Word; format: ^const Word8) #{varargs} -> Int32 +extern + +program() +begin + written := snprintf(@buffer[1], 8u, "%d %.1f".ptr, 200u8, 1.5f); + assert(written = 7i32); + assert(buffer[1] = '2'); + assert(buffer[7] = '5') +return 0u8 + +end. -- cgit v1.2.3