mirror of
https://github.com/ziglang/zig.git
synced 2026-02-13 04:48:20 +00:00
stage2: handle function dependency failures without crashing
This commit is contained in:
parent
c0ae9647f9
commit
6229d37dcf
@ -2350,7 +2350,12 @@ fn processOneJob(comp: *Compilation, job: Job, main_progress_node: *std.Progress
|
||||
|
||||
var air = module.analyzeFnBody(decl, func, sema_arena) catch |err| switch (err) {
|
||||
error.AnalysisFail => {
|
||||
assert(func.state != .in_progress);
|
||||
if (func.state == .in_progress) {
|
||||
// If this decl caused the compile error, the analysis field would
|
||||
// be changed to indicate it was this Decl's fault. Because this
|
||||
// did not happen, we infer here that it was a dependency failure.
|
||||
func.state = .dependency_failure;
|
||||
}
|
||||
return;
|
||||
},
|
||||
error.OutOfMemory => return error.OutOfMemory,
|
||||
|
||||
@ -1543,6 +1543,8 @@ pub const Value = extern union {
|
||||
hash(slice.len, Type.usize, hasher);
|
||||
},
|
||||
|
||||
// For these, hash them as hash of a pointer to the decl,
|
||||
// combined with a hash of the byte offset from the decl.
|
||||
.elem_ptr => @panic("TODO: Implement more pointer hashing cases"),
|
||||
.field_ptr => @panic("TODO: Implement more pointer hashing cases"),
|
||||
.eu_payload_ptr => @panic("TODO: Implement more pointer hashing cases"),
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user