aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorIan Johnson <ian@ianjohnson.dev>2023-03-12 13:08:15 -0400
committerVeikka Tuominen <git@vexu.eu>2023-03-13 13:17:13 +0200
commitadc6dec26b8ba9f79aabc4b69ae689acf4c6767d (patch)
treee2d75f52b177a937993f17f8a3a915a1f66b9515 /test
parent1d96a17af473d5ca79ecc7b64bbf2e899b5de3b4 (diff)
downloadzig-adc6dec26b8ba9f79aabc4b69ae689acf4c6767d.tar.gz
zig-adc6dec26b8ba9f79aabc4b69ae689acf4c6767d.zip
Sema: avoid panic on callconv(.C) generic return type
Fixes #14854
Diffstat (limited to 'test')
-rw-r--r--test/behavior.zig1
-rw-r--r--test/behavior/bugs/14854.zig13
2 files changed, 14 insertions, 0 deletions
diff --git a/test/behavior.zig b/test/behavior.zig
index 4f8ad67203..ed731377d8 100644
--- a/test/behavior.zig
+++ b/test/behavior.zig
@@ -141,6 +141,7 @@ test {
_ = @import("behavior/bugs/13664.zig");
_ = @import("behavior/bugs/13714.zig");
_ = @import("behavior/bugs/13785.zig");
+ _ = @import("behavior/bugs/14854.zig");
_ = @import("behavior/byteswap.zig");
_ = @import("behavior/byval_arg_var.zig");
_ = @import("behavior/call.zig");
diff --git a/test/behavior/bugs/14854.zig b/test/behavior/bugs/14854.zig
new file mode 100644
index 0000000000..b34dd49406
--- /dev/null
+++ b/test/behavior/bugs/14854.zig
@@ -0,0 +1,13 @@
+const testing = @import("std").testing;
+
+test {
+ try testing.expect(getGeneric(u8, getU8) == 123);
+}
+
+fn getU8() callconv(.C) u8 {
+ return 123;
+}
+
+fn getGeneric(comptime T: type, supplier: fn () callconv(.C) T) T {
+ return supplier();
+}