commit ac85e1f2c8959b8aba0862d31d531f5fa8d5d14c (tree)
parent 5b6cbd2e7cd00b19bdcfdeefc9b5d378ce8867a6
Author: Timon Kruiper <timonkruiper@gmail.com>
Date: Thu, 3 Dec 2020 15:01:57 +0100
stage2: make sure to emit the ZIR instructions of exported functions
Previously the emitted ZIR code would not have the ZIR instructions
of the exported functions.
Diffstat:
2 files changed, 16 insertions(+), 13 deletions(-)
diff --git a/src/zir.zig b/src/zir.zig
@@ -1952,10 +1952,9 @@ const EmitZIR = struct {
};
_ = try self.emitUnnamedDecl(&export_inst.base);
}
- } else {
- const new_decl = try self.emitTypedValue(ir_decl.src(), ir_decl.typed_value.most_recent.typed_value);
- new_decl.name = try self.arena.allocator.dupe(u8, mem.spanZ(ir_decl.name));
}
+ const new_decl = try self.emitTypedValue(ir_decl.src(), ir_decl.typed_value.most_recent.typed_value);
+ new_decl.name = try self.arena.allocator.dupe(u8, mem.spanZ(ir_decl.name));
}
}
diff --git a/test/stage2/zir.zig b/test/stage2/zir.zig
@@ -26,8 +26,9 @@ pub fn addCases(ctx: *TestContext) !void {
\\@9__anon_0 = str("entry")
\\@unnamed$4 = str("entry")
\\@unnamed$5 = export(@unnamed$4, "entry")
- \\@unnamed$6 = fntype([], @void, cc=C)
- \\@entry = fn(@unnamed$6, {
+ \\@11 = primitive(void_value)
+ \\@unnamed$7 = fntype([], @void, cc=C)
+ \\@entry = fn(@unnamed$7, {
\\ %0 = returnvoid() ; deaths=0b1000000000000000
\\})
\\
@@ -83,6 +84,7 @@ pub fn addCases(ctx: *TestContext) !void {
\\@9__anon_0 = str("entry")
\\@unnamed$11 = str("entry")
\\@unnamed$12 = export(@unnamed$11, "entry")
+ \\@11 = primitive(void_value)
\\
);
@@ -116,18 +118,19 @@ pub fn addCases(ctx: *TestContext) !void {
\\@9__anon_0 = str("entry")
\\@unnamed$4 = str("entry")
\\@unnamed$5 = export(@unnamed$4, "entry")
- \\@unnamed$6 = fntype([], @void, cc=C)
- \\@entry = fn(@unnamed$6, {
+ \\@11 = primitive(void_value)
+ \\@unnamed$7 = fntype([], @void, cc=C)
+ \\@entry = fn(@unnamed$7, {
\\ %0 = call(@a, [], modifier=auto) ; deaths=0b1000000000000001
\\ %1 = returnvoid() ; deaths=0b1000000000000000
\\})
- \\@unnamed$8 = fntype([], @void, cc=C)
- \\@a = fn(@unnamed$8, {
+ \\@unnamed$9 = fntype([], @void, cc=C)
+ \\@a = fn(@unnamed$9, {
\\ %0 = call(@b, [], modifier=auto) ; deaths=0b1000000000000001
\\ %1 = returnvoid() ; deaths=0b1000000000000000
\\})
- \\@unnamed$10 = fntype([], @void, cc=C)
- \\@b = fn(@unnamed$10, {
+ \\@unnamed$11 = fntype([], @void, cc=C)
+ \\@b = fn(@unnamed$11, {
\\ %0 = call(@a, [], modifier=auto) ; deaths=0b1000000000000001
\\ %1 = returnvoid() ; deaths=0b1000000000000000
\\})
@@ -192,8 +195,9 @@ pub fn addCases(ctx: *TestContext) !void {
\\@9__anon_2 = str("entry")
\\@unnamed$4 = str("entry")
\\@unnamed$5 = export(@unnamed$4, "entry")
- \\@unnamed$6 = fntype([], @void, cc=C)
- \\@entry = fn(@unnamed$6, {
+ \\@11 = primitive(void_value)
+ \\@unnamed$7 = fntype([], @void, cc=C)
+ \\@entry = fn(@unnamed$7, {
\\ %0 = returnvoid() ; deaths=0b1000000000000000
\\})
\\