diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2021-05-17 13:44:20 -0700 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2021-05-17 13:44:20 -0700 |
| commit | 3697022a41ffa13a3971aeaf96b9c2b8de391ab1 (patch) | |
| tree | 94e7a23c262fcb7b0427437502c72a845769b980 /src/Module.zig | |
| parent | d83983527323201c44f90a2f57ff58c746116e11 (diff) | |
| download | zig-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.zig | 4 |
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); } |
