diff options
| author | Eugen Wissner <belka@caraus.de> | 2026-09-12 00:18:11 +0200 |
|---|---|---|
| committer | Eugen Wissner <belka@caraus.de> | 2026-09-12 00:18:11 +0200 |
| commit | eb1d068beeaaa420b558595751295eec35ad0c3c (patch) | |
| tree | a10aadd88ba358726573f7324ff6f9c489ebad77 /testsuite/fail_compilation | |
| parent | bd2b80d6ac582b9f0bcd96c86d4b79bfdb64eca1 (diff) | |
| download | elna-eb1d068beeaaa420b558595751295eec35ad0c3c.tar.gz | |
Support variadic extern procedures
Diffstat (limited to 'testsuite/fail_compilation')
| -rw-r--r-- | testsuite/fail_compilation/aligned_attribute.elna | 8 | ||||
| -rw-r--r-- | testsuite/fail_compilation/varargs_argument.elna | 12 | ||||
| -rw-r--r-- | testsuite/fail_compilation/varargs_attribute.elna | 8 |
3 files changed, 24 insertions, 4 deletions
diff --git a/testsuite/fail_compilation/aligned_attribute.elna b/testsuite/fail_compilation/aligned_attribute.elna index 3b5a56e..aab5513 100644 --- a/testsuite/fail_compilation/aligned_attribute.elna +++ b/testsuite/fail_compilation/aligned_attribute.elna @@ -1,15 +1,15 @@ type Uneven = record - #aligned(3) x: Word8 (* @Error Alignment must be a power of two *) + x #{aligned 3}: Word8 (* @Error Alignment must be a power of two *) end Twice = record - #aligned(4) #aligned(8) y: Word8 (* @Error Attribute '#aligned' specified more than once *) + y #{aligned 4} #{aligned 8}: Word8 (* @Error Attribute 'aligned' specified more than once *) end Unknown = record - #packed(1) z: Word8 (* @Error Attribute '#packed' not declared *) + z #{packed 1}: Word8 (* @Error Attribute 'packed' not declared *) end -proc takes(#aligned(8) p: Int) (* @Error Attribute '#aligned' is not supported in this position *) +proc takes(p #{aligned 8}: Int) (* @Error Attribute 'aligned' is not supported in this position *) begin return diff --git a/testsuite/fail_compilation/varargs_argument.elna b/testsuite/fail_compilation/varargs_argument.elna new file mode 100644 index 0000000..1325c29 --- /dev/null +++ b/testsuite/fail_compilation/varargs_argument.elna @@ -0,0 +1,12 @@ +var + written: Int32 + +proc printf(format: ^const Word8) #{varargs} -> Int32 +extern + +program() +begin + written := printf("%s".ptr, "text") (* @Error Type '\[\]const Word8' cannot be passed as a variadic argument *) +return 0u8 + +end. diff --git a/testsuite/fail_compilation/varargs_attribute.elna b/testsuite/fail_compilation/varargs_attribute.elna new file mode 100644 index 0000000..1c6d3e0 --- /dev/null +++ b/testsuite/fail_compilation/varargs_attribute.elna @@ -0,0 +1,8 @@ +proc with_body(x: Int) #{varargs} (* @Error Attribute 'varargs' is not supported in this position *) +begin +return + +proc no_parameters() #{varargs} -> Int32 (* @Error Attribute 'varargs' requires at least one parameter *) +extern + +end. |
