diff options
author | Tavian Barnes <tavianator@tavianator.com> | 2017-09-17 12:11:11 -0400 |
---|---|---|
committer | Tavian Barnes <tavianator@tavianator.com> | 2017-09-17 12:11:11 -0400 |
commit | 5559b9ed33db3e88c6576f1a43ce48b123462e8d (patch) | |
tree | ac162579f26144fa9dc637174fafab587a409c90 /opt.c | |
parent | 86d790e134d5a12e569e1d78804bc5a54ca9ed25 (diff) | |
download | bfs-5559b9ed33db3e88c6576f1a43ce48b123462e8d.tar.xz |
opt: Fix -depth with arguments bigger than INT_MAX
Diffstat (limited to 'opt.c')
-rw-r--r-- | opt.c | 12 |
1 files changed, 8 insertions, 4 deletions
@@ -120,14 +120,18 @@ static void debug_opt(const struct opt_state *state, const char *format, ...) { } /** Update the inferred mindepth. */ -static void update_mindepth(struct opt_facts *facts, int mindepth) { +static void update_mindepth(struct opt_facts *facts, long long mindepth) { if (mindepth > facts->mindepth) { - facts->mindepth = mindepth; + if (mindepth > INT_MAX) { + facts->maxdepth = -1; + } else { + facts->mindepth = mindepth; + } } } /** Update the inferred maxdepth. */ -static void update_maxdepth(struct opt_facts *facts, int maxdepth) { +static void update_maxdepth(struct opt_facts *facts, long long maxdepth) { if (maxdepth < facts->maxdepth) { facts->maxdepth = maxdepth; } @@ -147,7 +151,7 @@ static void infer_depth_facts(struct opt_state *state, const struct expr *expr) break; case CMP_GREATER: - if (expr->idata == INT_MAX) { + if (expr->idata == LONG_LONG_MAX) { // Avoid overflow state->facts_when_true.maxdepth = -1; } else { |