mirror of
https://github.com/ziglang/zig.git
synced 2026-02-12 20:37:54 +00:00
Zcu: fix passing exported decls with compile errors to the backend
This commit is contained in:
parent
854e86c567
commit
47846bc17c
@ -2098,6 +2098,25 @@ fn processExportsInner(
|
||||
gop.value_ptr.* = export_idx;
|
||||
}
|
||||
}
|
||||
|
||||
switch (exported) {
|
||||
.decl_index => |idx| if (failed: {
|
||||
const decl = zcu.declPtr(idx);
|
||||
if (decl.analysis != .complete) break :failed true;
|
||||
// Check if has owned function
|
||||
if (!decl.owns_tv) break :failed false;
|
||||
if (decl.typeOf(zcu).zigTypeTag(zcu) != .Fn) break :failed false;
|
||||
// Check if owned function failed
|
||||
const a = zcu.funcInfo(decl.val.toIntern()).analysis(&zcu.intern_pool);
|
||||
break :failed a.state != .success;
|
||||
}) {
|
||||
// This `Decl` is failed, so was never sent to codegen.
|
||||
// TODO: we should probably tell the backend to delete any old exports of this `Decl`?
|
||||
return;
|
||||
},
|
||||
.value => {},
|
||||
}
|
||||
|
||||
if (zcu.comp.bin_file) |lf| {
|
||||
try zcu.handleUpdateExports(export_indices, lf.updateExports(pt, exported, export_indices));
|
||||
} else if (zcu.llvm_object) |llvm_object| {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user