aboutsummaryrefslogtreecommitdiff
path: root/src/Module.zig
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2021-05-17 13:44:20 -0700
committerAndrew Kelley <andrew@ziglang.org>2021-05-17 13:44:20 -0700
commit3697022a41ffa13a3971aeaf96b9c2b8de391ab1 (patch)
tree94e7a23c262fcb7b0427437502c72a845769b980 /src/Module.zig
parentd83983527323201c44f90a2f57ff58c746116e11 (diff)
downloadzig-3697022a41ffa13a3971aeaf96b9c2b8de391ab1.tar.gz
zig-3697022a41ffa13a3971aeaf96b9c2b8de391ab1.zip
stage2: avoid calling freeDecl when hasCodeGenBits == false
Previously the frontend incorrectly called freeDecl for structs, which never got allocateDecl called for them. There was simply a missing check for hasCodeGenBits().
Diffstat (limited to 'src/Module.zig')
-rw-r--r--src/Module.zig4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/Module.zig b/src/Module.zig
index 2227e47d72..b74ef1cc81 100644
--- a/src/Module.zig
+++ b/src/Module.zig
@@ -3499,9 +3499,11 @@ pub fn deleteDecl(
}
_ = mod.compile_log_decls.swapRemove(decl);
mod.deleteDeclExports(decl);
- mod.comp.bin_file.freeDecl(decl);
if (decl.has_tv) {
+ if (decl.ty.hasCodeGenBits()) {
+ mod.comp.bin_file.freeDecl(decl);
+ }
if (decl.getInnerNamespace()) |namespace| {
try namespace.deleteAllDecls(mod, outdated_decls);
}