mirror of
https://codeberg.org/ziglang/zig.git
synced 2025-12-06 13:54:21 +00:00
fix exported variable not respecting linkage
This commit is contained in:
parent
2696c8b42d
commit
c39d7a6326
5 changed files with 47 additions and 0 deletions
|
|
@ -17841,6 +17841,7 @@ static IrInstGen *ir_analyze_instruction_export(IrAnalyze *ira, IrInstSrcExport
|
||||||
}
|
}
|
||||||
} break;
|
} break;
|
||||||
case ZigTypeIdInt:
|
case ZigTypeIdInt:
|
||||||
|
want_var_export = true;
|
||||||
break;
|
break;
|
||||||
case ZigTypeIdVoid:
|
case ZigTypeIdVoid:
|
||||||
case ZigTypeIdBool:
|
case ZigTypeIdBool:
|
||||||
|
|
|
||||||
23
test/standalone/global_linkage/build.zig
Normal file
23
test/standalone/global_linkage/build.zig
Normal file
|
|
@ -0,0 +1,23 @@
|
||||||
|
const Builder = @import("std").build.Builder;
|
||||||
|
|
||||||
|
pub fn build(b: *Builder) void {
|
||||||
|
const mode = b.standardReleaseOptions();
|
||||||
|
const target = b.standardTargetOptions(null);
|
||||||
|
|
||||||
|
const obj1 = b.addStaticLibrary("obj1", "obj1.zig");
|
||||||
|
obj1.setBuildMode(mode);
|
||||||
|
obj1.setTheTarget(target);
|
||||||
|
|
||||||
|
const obj2 = b.addStaticLibrary("obj2", "obj2.zig");
|
||||||
|
obj2.setBuildMode(mode);
|
||||||
|
obj2.setTheTarget(target);
|
||||||
|
|
||||||
|
const main = b.addTest("main.zig");
|
||||||
|
main.setBuildMode(mode);
|
||||||
|
main.setTheTarget(target);
|
||||||
|
main.linkLibrary(obj1);
|
||||||
|
main.linkLibrary(obj2);
|
||||||
|
|
||||||
|
const test_step = b.step("test", "Test it");
|
||||||
|
test_step.dependOn(&main.step);
|
||||||
|
}
|
||||||
9
test/standalone/global_linkage/main.zig
Normal file
9
test/standalone/global_linkage/main.zig
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
const std = @import("std");
|
||||||
|
|
||||||
|
extern var obj1_integer: usize;
|
||||||
|
extern var obj2_integer: usize;
|
||||||
|
|
||||||
|
test "access the external integers" {
|
||||||
|
std.testing.expect(obj1_integer == 421);
|
||||||
|
std.testing.expect(obj2_integer == 422);
|
||||||
|
}
|
||||||
7
test/standalone/global_linkage/obj1.zig
Normal file
7
test/standalone/global_linkage/obj1.zig
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
extern var internal_integer: usize = 1;
|
||||||
|
extern var obj1_integer: usize = 421;
|
||||||
|
|
||||||
|
comptime {
|
||||||
|
@export(internal_integer, .{ .name = "internal_integer", .linkage = .Internal });
|
||||||
|
@export(obj1_integer, .{ .name = "obj1_integer", .linkage = .Strong });
|
||||||
|
}
|
||||||
7
test/standalone/global_linkage/obj2.zig
Normal file
7
test/standalone/global_linkage/obj2.zig
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
extern var internal_integer: usize = 2;
|
||||||
|
extern var obj2_integer: usize = 422;
|
||||||
|
|
||||||
|
comptime {
|
||||||
|
@export(internal_integer, .{ .name = "internal_integer", .linkage = .Internal });
|
||||||
|
@export(obj2_integer, .{ .name = "obj2_integer", .linkage = .Strong });
|
||||||
|
}
|
||||||
Loading…
Add table
Reference in a new issue