aboutsummaryrefslogtreecommitdiff
path: root/testsuite/fail_compilation
diff options
context:
space:
mode:
authorEugen Wissner <belka@caraus.de>2026-09-12 00:18:11 +0200
committerEugen Wissner <belka@caraus.de>2026-09-12 00:18:11 +0200
commiteb1d068beeaaa420b558595751295eec35ad0c3c (patch)
treea10aadd88ba358726573f7324ff6f9c489ebad77 /testsuite/fail_compilation
parentbd2b80d6ac582b9f0bcd96c86d4b79bfdb64eca1 (diff)
downloadelna-eb1d068beeaaa420b558595751295eec35ad0c3c.tar.gz
Support variadic extern procedures
Diffstat (limited to 'testsuite/fail_compilation')
-rw-r--r--testsuite/fail_compilation/aligned_attribute.elna8
-rw-r--r--testsuite/fail_compilation/varargs_argument.elna12
-rw-r--r--testsuite/fail_compilation/varargs_attribute.elna8
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.