aboutsummaryrefslogtreecommitdiff
path: root/src/Module.zig
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2023-07-17 17:47:59 -0700
committerAndrew Kelley <andrew@ziglang.org>2023-07-18 19:02:06 -0700
commit3f2a4720b1ef057215c8240b3a377c523ee63e94 (patch)
treeafd14ff8780da15e9b240dc2612d86083b49a81a /src/Module.zig
parentb03d34429d059dc3f6056d7f780dc623c96523b4 (diff)
downloadzig-3f2a4720b1ef057215c8240b3a377c523ee63e94.tar.gz
zig-3f2a4720b1ef057215c8240b3a377c523ee63e94.zip
compiler: fix branch regressions
* getOwnedFunctionIndex no longer checks if the value is actually a function. * The callsites to `intern` that I added want to avoid the `getCoerced` call, so I added `intern2`. * Adding to inferred error sets should not happen if the destination error set is not the inferred error set of the current Sema instance. * adhoc_inferred_error_set_type can be seen by the backend. Treat it like anyerror.
Diffstat (limited to 'src/Module.zig')
-rw-r--r--src/Module.zig3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/Module.zig b/src/Module.zig
index 45536547d8..d9ee3a57ad 100644
--- a/src/Module.zig
+++ b/src/Module.zig
@@ -751,6 +751,7 @@ pub const Decl = struct {
};
}
+ /// This returns an InternPool.Index even when the value is not a function.
pub fn getOwnedFunctionIndex(decl: Decl) InternPool.Index {
return if (decl.owns_tv) decl.val.toIntern() else .none;
}
@@ -4978,7 +4979,7 @@ fn scanDecl(iter: *ScanDeclIter, decl_sub_index: usize, flags: u4) Allocator.Err
decl.has_align = has_align;
decl.has_linksection_or_addrspace = has_linksection_or_addrspace;
decl.zir_decl_index = @as(u32, @intCast(decl_sub_index));
- if (decl.getOwnedFunctionIndex() != .none) {
+ if (decl.getOwnedFunction(mod) != null) {
switch (comp.bin_file.tag) {
.coff, .elf, .macho, .plan9 => {
// TODO Look into detecting when this would be unnecessary by storing enough state