| author | |
| committer | |
| log | c39d7a632603c944732787e3ba1b77e26fccc3c1 |
| tree | e772c97645e46e25f03b39511f9796ae2948e1bb |
| parent | 2696c8b42d7fcec1b8cf3f332742df4638c519b1 |
| signature |
5 files changed, 47 insertions(+), 0 deletions(-)
src/ir.cpp+1| ... | ... | @@ -17841,6 +17841,7 @@ static IrInstGen *ir_analyze_instruction_export(IrAnalyze *ira, IrInstSrcExport |
| 17841 | 17841 | } |
| 17842 | 17842 | } break; |
| 17843 | 17843 | case ZigTypeIdInt: |
| 17844 | want_var_export = true; | |
| 17844 | 17845 | break; |
| 17845 | 17846 | case ZigTypeIdVoid: |
| 17846 | 17847 | case ZigTypeIdBool: |
test/standalone/global_linkage/build.zig created+23| ... | ... | @@ -0,0 +1,23 @@ |
| 1 | const Builder = @import("std").build.Builder; | |
| 2 | ||
| 3 | pub fn build(b: *Builder) void { | |
| 4 | const mode = b.standardReleaseOptions(); | |
| 5 | const target = b.standardTargetOptions(null); | |
| 6 | ||
| 7 | const obj1 = b.addStaticLibrary("obj1", "obj1.zig"); | |
| 8 | obj1.setBuildMode(mode); | |
| 9 | obj1.setTheTarget(target); | |
| 10 | ||
| 11 | const obj2 = b.addStaticLibrary("obj2", "obj2.zig"); | |
| 12 | obj2.setBuildMode(mode); | |
| 13 | obj2.setTheTarget(target); | |
| 14 | ||
| 15 | const main = b.addTest("main.zig"); | |
| 16 | main.setBuildMode(mode); | |
| 17 | main.setTheTarget(target); | |
| 18 | main.linkLibrary(obj1); | |
| 19 | main.linkLibrary(obj2); | |
| 20 | ||
| 21 | const test_step = b.step("test", "Test it"); | |
| 22 | test_step.dependOn(&main.step); | |
| 23 | } |
test/standalone/global_linkage/main.zig created+9| ... | ... | @@ -0,0 +1,9 @@ |
| 1 | const std = @import("std"); | |
| 2 | ||
| 3 | extern var obj1_integer: usize; | |
| 4 | extern var obj2_integer: usize; | |
| 5 | ||
| 6 | test "access the external integers" { | |
| 7 | std.testing.expect(obj1_integer == 421); | |
| 8 | std.testing.expect(obj2_integer == 422); | |
| 9 | } |
test/standalone/global_linkage/obj1.zig created+7| ... | ... | @@ -0,0 +1,7 @@ |
| 1 | extern var internal_integer: usize = 1; | |
| 2 | extern var obj1_integer: usize = 421; | |
| 3 | ||
| 4 | comptime { | |
| 5 | @export(internal_integer, .{ .name = "internal_integer", .linkage = .Internal }); | |
| 6 | @export(obj1_integer, .{ .name = "obj1_integer", .linkage = .Strong }); | |
| 7 | } |
test/standalone/global_linkage/obj2.zig created+7| ... | ... | @@ -0,0 +1,7 @@ |
| 1 | extern var internal_integer: usize = 2; | |
| 2 | extern var obj2_integer: usize = 422; | |
| 3 | ||
| 4 | comptime { | |
| 5 | @export(internal_integer, .{ .name = "internal_integer", .linkage = .Internal }); | |
| 6 | @export(obj2_integer, .{ .name = "obj2_integer", .linkage = .Strong }); | |
| 7 | } |