diff --git a/src/build.cc b/src/build.cc index 7ad08117be..66ec2cb5b0 100644 --- a/src/build.cc +++ b/src/build.cc @@ -468,7 +468,9 @@ namespace { // Heuristic for edge priority weighting. // Phony edges are free (0 cost), all other edges are weighted equally. int64_t EdgeWeightHeuristic(Edge *edge) { - return edge->is_phony() ? 0 : 1; + int64_t prev_elapsed_time_millis = + edge->prev_elapsed_time_millis < 0 ? 1 : edge->prev_elapsed_time_millis; + return edge->is_phony() ? 0 : prev_elapsed_time_millis; } } // namespace