diff options
author | Tavian Barnes <tavianator@tavianator.com> | 2024-09-17 12:18:04 -0400 |
---|---|---|
committer | Tavian Barnes <tavianator@tavianator.com> | 2024-09-17 12:18:04 -0400 |
commit | b1a999892b9e13181ddd9a7d895f3d1c65fbb449 (patch) | |
tree | 1b0b7fec30b0bad4e649d68f8708a1cb14c06326 /src/opt.c | |
parent | 0301397f6cf7f035f723e065eced122d78506718 (diff) | |
download | bfs-b1a999892b9e13181ddd9a7d895f3d1c65fbb449.tar.xz |
opt: Fix an invalid assertion in sink_not_comma()
When optimizing -not \( -a , -b \), the child is a comma expression, not
the parent.
Fixes: 4a36bb9 ("expr: Make expressions variadic")
Diffstat (limited to 'src/opt.c')
-rw-r--r-- | src/opt.c | 7 |
1 files changed, 3 insertions, 4 deletions
@@ -1402,12 +1402,11 @@ static struct bfs_expr *sink_not_andor(struct bfs_opt *opt, struct bfs_expr *exp /** Sink a negation into a comma expression. */ static struct bfs_expr *sink_not_comma(struct bfs_opt *opt, struct bfs_expr *expr) { - bfs_assert(expr->eval_fn == eval_comma); - - opt_enter(opt, "%pe\n", expr); - char **argv = expr->argv; expr = only_child(expr); + opt_enter(opt, "%pe\n", expr); + + bfs_assert(expr->eval_fn == eval_comma); struct bfs_exprs children; foster_children(expr, &children); |