Commit 15bcfcd368
src-self-hosted/zir.zig
@@ -872,6 +872,8 @@ pub const Module = struct {
};
pub fn deinit(self: *Module, allocator: *Allocator) void {
+ self.metadata.deinit();
+ self.body_metadata.deinit();
allocator.free(self.decls);
self.arena.deinit();
self.* = undefined;
@@ -1543,8 +1545,8 @@ pub fn emit(allocator: *Allocator, old_module: IrModule) !Module {
.metadata = std.AutoHashMap(*Inst, Module.MetaData).init(allocator),
.body_metadata = std.AutoHashMap(*Module.Body, Module.BodyMetaData).init(allocator),
};
- defer ctx.metadata.deinit();
- defer ctx.body_metadata.deinit();
+ errdefer ctx.metadata.deinit();
+ errdefer ctx.body_metadata.deinit();
defer ctx.block_table.deinit();
defer ctx.loop_table.deinit();
defer ctx.decls.deinit(allocator);
test/stage2/zir.zig
@@ -28,7 +28,7 @@ pub fn addCases(ctx: *TestContext) !void {
\\@unnamed$5 = export(@unnamed$4, "entry")
\\@unnamed$6 = fntype([], @void, cc=C)
\\@entry = fn(@unnamed$6, {
- \\ %0 = returnvoid()
+ \\ %0 = returnvoid() ; deaths=0b1000000000000000
\\})
\\
);
@@ -75,7 +75,7 @@ pub fn addCases(ctx: *TestContext) !void {
\\@3 = int(3)
\\@unnamed$6 = fntype([], @void, cc=C)
\\@entry = fn(@unnamed$6, {
- \\ %0 = returnvoid()
+ \\ %0 = returnvoid() ; deaths=0b1000000000000000
\\})
\\@entry__anon_1 = str("2\x08\x01\n")
\\@9 = declref("9__anon_0")
@@ -117,18 +117,18 @@ pub fn addCases(ctx: *TestContext) !void {
\\@unnamed$5 = export(@unnamed$4, "entry")
\\@unnamed$6 = fntype([], @void, cc=C)
\\@entry = fn(@unnamed$6, {
- \\ %0 = call(@a, [], modifier=auto)
- \\ %1 = returnvoid()
+ \\ %0 = call(@a, [], modifier=auto) ; deaths=0b1000000000000001
+ \\ %1 = returnvoid() ; deaths=0b1000000000000000
\\})
\\@unnamed$8 = fntype([], @void, cc=C)
\\@a = fn(@unnamed$8, {
- \\ %0 = call(@b, [], modifier=auto)
- \\ %1 = returnvoid()
+ \\ %0 = call(@b, [], modifier=auto) ; deaths=0b1000000000000001
+ \\ %1 = returnvoid() ; deaths=0b1000000000000000
\\})
\\@unnamed$10 = fntype([], @void, cc=C)
\\@b = fn(@unnamed$10, {
- \\ %0 = call(@a, [], modifier=auto)
- \\ %1 = returnvoid()
+ \\ %0 = call(@a, [], modifier=auto) ; deaths=0b1000000000000001
+ \\ %1 = returnvoid() ; deaths=0b1000000000000000
\\})
\\
);
@@ -193,7 +193,7 @@ pub fn addCases(ctx: *TestContext) !void {
\\@unnamed$5 = export(@unnamed$4, "entry")
\\@unnamed$6 = fntype([], @void, cc=C)
\\@entry = fn(@unnamed$6, {
- \\ %0 = returnvoid()
+ \\ %0 = returnvoid() ; deaths=0b1000000000000000
\\})
\\
);