fixme: abs() overflow on INT_MIN