fuzzbug fix

This commit is contained in:
Chris Fallin 2021-12-24 00:45:27 -08:00
parent 45ba7dd209
commit c7ba91b283

View file

@ -89,17 +89,25 @@ impl Schedule {
} }
} else { } else {
log::trace!("v{} waiting on {:?}", value.index(), operands); log::trace!("v{} waiting on {:?}", value.index(), operands);
ctx.remaining_inputs.insert(value, operands.len()); let mut remaining = 0;
for &input in operands { for &input in operands {
if input == Value::undef() { if input == Value::undef() {
continue; continue;
} }
let input = f.resolve_alias(input); let input = f.resolve_alias(input);
if let &ValueDef::Operator(ref op, ..) = &f.values[input.index()] {
if op_rematerialize(op) {
continue;
}
}
ctx.waiting_on_value ctx.waiting_on_value
.entry(input) .entry(input)
.or_insert_with(|| vec![]) .or_insert_with(|| vec![])
.push(value); .push(value);
remaining += 1;
} }
ctx.remaining_inputs.insert(value, remaining);
} }
} }
&ValueDef::Alias(v) | &ValueDef::PickOutput(v, _) => { &ValueDef::Alias(v) | &ValueDef::PickOutput(v, _) => {