master
1const std = @import("std");
2
3extern fn add_C(x: i32) i32;
4extern fn add_C_zig(x: i32) i32;
5extern threadlocal var C_k: c_int;
6
7export var zig_k: c_int = 1;
8export fn add_zig(x: i32) i32 {
9 return x + zig_k + C_k;
10}
11export fn add_may_panic(x: i32) i32 {
12 if (x < 0) @panic("negative int");
13 return x + zig_k;
14}
15
16pub fn main() anyerror!void {
17 var x: i32 = 0;
18 x = add_zig(x);
19 x = add_C(x);
20 x = add_C_zig(x);
21
22 C_k = 200;
23 zig_k = 2;
24 x = add_zig(x);
25 x = add_C(x);
26 x = add_C_zig(x);
27
28 const u = @as(u32, @intCast(x));
29 try std.testing.expect(u / 100 == u % 100);
30}