Overflow check in push_relabel constructor doesn't work
push_relabel_max_flow.hpp currently has the following code:
bool overflow_detected = false;
FlowValue test_excess = 0;
out_edge_iterator a_iter, a_end;
for (boost::tie(a_iter, a_end) = out_edges(src, g); a_iter != a_end; ++a_iter)
if (target(*a_iter, g) != src)
test_excess += get(residual_capacity, *a_iter);
if (test_excess > (std::numeric_limits<FlowValue>::max)())
overflow_detected = true;
It is not possible for test_excess to be greater than its type's maximum value. Therefore, overflow_detected is always false and any code that is only called when it is true is never called.