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}