motiejus/zig

fork of https://codeberg.org/ziglang/zig
git clone https://git.jakstys.lt/motiejus/zig.git
Log | Tree | Refs | README | LICENSE

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:
Msrc/zir.zig | 5++---
Mtest/stage2/zir.zig | 24++++++++++++++----------
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 \\}) \\