summaryrefslogtreecommitdiffstats
path: root/opt.c
diff options
context:
space:
mode:
authorTavian Barnes <tavianator@tavianator.com>2020-11-09 17:01:33 -0500
committerTavian Barnes <tavianator@tavianator.com>2020-11-09 17:06:31 -0500
commitdd3bbb976be76325f4115f9f0ef51b3e6dde75c5 (patch)
tree3856f4c0ac2ad49fe3c9c2e89768e77f5e9192e6 /opt.c
parent6495006b74655554b4d3d18f5c6221facaa8b67c (diff)
downloadbfs-dd3bbb976be76325f4115f9f0ef51b3e6dde75c5.tar.xz
opt: Predicates aren't true when they're false
This unfortunate typo was mostly harmless; since the predicates were always assumed to be true, they wouldn't conflict. The exception is -user/-group, which set -nouser/-nogroup to false for users/groups that exist. Even -O0 wasn't enough to suppress the bug, due to a missing optlevel check fixed in the previous commit. Fixes: 305ee902874b49351f4916e303c293523f11570b
Diffstat (limited to 'opt.c')
-rw-r--r--opt.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/opt.c b/opt.c
index 8c516ea..50ad212 100644
--- a/opt.c
+++ b/opt.c
@@ -1,6 +1,6 @@
/****************************************************************************
* bfs *
- * Copyright (C) 2017-2019 Tavian Barnes <tavianator@tavianator.com> *
+ * Copyright (C) 2017-2020 Tavian Barnes <tavianator@tavianator.com> *
* *
* Permission to use, copy, modify, and/or distribute this software for any *
* purpose with or without fee is hereby granted. *
@@ -712,7 +712,7 @@ fail:
/** Infer data flow facts about a predicate. */
static void infer_pred_facts(struct opt_state *state, enum pred_type pred) {
constrain_pred(&state->facts_when_true.preds[pred], true);
- constrain_pred(&state->facts_when_false.preds[pred], true);
+ constrain_pred(&state->facts_when_false.preds[pred], false);
}
/** Infer data flow facts about an -{execut,read,writ}able expression. */