authorgravatar for timonkruiper@gmail.comTimon Kruiper <timonkruiper@gmail.com> 2020-12-03 15:01:57+01:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2020-12-03 11:46:35-08:00
logac85e1f2c8959b8aba0862d31d531f5fa8d5d14c
tree6222e9fcbbaf3e45870932d54cbdbd878e591cca
parent5b6cbd2e7cd00b19bdcfdeefc9b5d378ce8867a6

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.

2 files changed, 16 insertions(+), 13 deletions(-)

src/zir.zig+2-3
......@@ -1952,10 +1952,9 @@ const EmitZIR = struct {
19521952 };
19531953 _ = try self.emitUnnamedDecl(&export_inst.base);
19541954 }
1955 } else {
1956 const new_decl = try self.emitTypedValue(ir_decl.src(), ir_decl.typed_value.most_recent.typed_value);
1957 new_decl.name = try self.arena.allocator.dupe(u8, mem.spanZ(ir_decl.name));
19581955 }
1956 const new_decl = try self.emitTypedValue(ir_decl.src(), ir_decl.typed_value.most_recent.typed_value);
1957 new_decl.name = try self.arena.allocator.dupe(u8, mem.spanZ(ir_decl.name));
19591958 }
19601959 }
19611960
test/stage2/zir.zig+14-10
......@@ -26,8 +26,9 @@ pub fn addCases(ctx: *TestContext) !void {
2626 \\@9__anon_0 = str("entry")
2727 \\@unnamed$4 = str("entry")
2828 \\@unnamed$5 = export(@unnamed$4, "entry")
29 \\@unnamed$6 = fntype([], @void, cc=C)
30 \\@entry = fn(@unnamed$6, {
29 \\@11 = primitive(void_value)
30 \\@unnamed$7 = fntype([], @void, cc=C)
31 \\@entry = fn(@unnamed$7, {
3132 \\ %0 = returnvoid() ; deaths=0b1000000000000000
3233 \\})
3334 \\
......@@ -83,6 +84,7 @@ pub fn addCases(ctx: *TestContext) !void {
8384 \\@9__anon_0 = str("entry")
8485 \\@unnamed$11 = str("entry")
8586 \\@unnamed$12 = export(@unnamed$11, "entry")
87 \\@11 = primitive(void_value)
8688 \\
8789 );
8890
......@@ -116,18 +118,19 @@ pub fn addCases(ctx: *TestContext) !void {
116118 \\@9__anon_0 = str("entry")
117119 \\@unnamed$4 = str("entry")
118120 \\@unnamed$5 = export(@unnamed$4, "entry")
119 \\@unnamed$6 = fntype([], @void, cc=C)
120 \\@entry = fn(@unnamed$6, {
121 \\@11 = primitive(void_value)
122 \\@unnamed$7 = fntype([], @void, cc=C)
123 \\@entry = fn(@unnamed$7, {
121124 \\ %0 = call(@a, [], modifier=auto) ; deaths=0b1000000000000001
122125 \\ %1 = returnvoid() ; deaths=0b1000000000000000
123126 \\})
124 \\@unnamed$8 = fntype([], @void, cc=C)
125 \\@a = fn(@unnamed$8, {
127 \\@unnamed$9 = fntype([], @void, cc=C)
128 \\@a = fn(@unnamed$9, {
126129 \\ %0 = call(@b, [], modifier=auto) ; deaths=0b1000000000000001
127130 \\ %1 = returnvoid() ; deaths=0b1000000000000000
128131 \\})
129 \\@unnamed$10 = fntype([], @void, cc=C)
130 \\@b = fn(@unnamed$10, {
132 \\@unnamed$11 = fntype([], @void, cc=C)
133 \\@b = fn(@unnamed$11, {
131134 \\ %0 = call(@a, [], modifier=auto) ; deaths=0b1000000000000001
132135 \\ %1 = returnvoid() ; deaths=0b1000000000000000
133136 \\})
......@@ -192,8 +195,9 @@ pub fn addCases(ctx: *TestContext) !void {
192195 \\@9__anon_2 = str("entry")
193196 \\@unnamed$4 = str("entry")
194197 \\@unnamed$5 = export(@unnamed$4, "entry")
195 \\@unnamed$6 = fntype([], @void, cc=C)
196 \\@entry = fn(@unnamed$6, {
198 \\@11 = primitive(void_value)
199 \\@unnamed$7 = fntype([], @void, cc=C)
200 \\@entry = fn(@unnamed$7, {
197201 \\ %0 = returnvoid() ; deaths=0b1000000000000000
198202 \\})
199203 \\