| 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,6 +17841,7 @@ static IrInstGen *ir_analyze_instruction_export(IrAnalyze *ira, IrInstSrcExport |
| 17841 | } | 17841 | } |
| 17842 | } break; | 17842 | } break; |
| 17843 | case ZigTypeIdInt: | 17843 | case ZigTypeIdInt: |
| 17844 | want_var_export = true; | ||
| 17844 | break; | 17845 | break; |
| 17845 | case ZigTypeIdVoid: | 17846 | case ZigTypeIdVoid: |
| 17846 | case ZigTypeIdBool: | 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 | } | ||