diff options
author | Lennart Poettering <lennart@poettering.net> | 2022-02-22 14:59:10 +0100 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2022-02-22 22:47:12 +0100 |
commit | ec93eb48f2b23b9451c3d08064b07ee23e39a053 (patch) | |
tree | 9492a25c98c5998f4d4bd4a5a9d3fd26ce331db3 /coccinelle | |
parent | Merge pull request #22592 from yuwata/test-oomd-util-fixlets (diff) | |
download | systemd-ec93eb48f2b23b9451c3d08064b07ee23e39a053.tar.xz systemd-ec93eb48f2b23b9451c3d08064b07ee23e39a053.zip |
coccinelle: automatically look for timestamp_is_set candidates
Based on @mrc0mmand's Coccinelle skills, not mine. All credit is his.
Co-authored-by: Frantisek Sumsal <frantisek@sumsal.cz>
Diffstat (limited to 'coccinelle')
-rw-r--r-- | coccinelle/timestamp-is-set.cocci | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/coccinelle/timestamp-is-set.cocci b/coccinelle/timestamp-is-set.cocci new file mode 100644 index 0000000000..2d251fa205 --- /dev/null +++ b/coccinelle/timestamp-is-set.cocci @@ -0,0 +1,73 @@ +/* SPDX-License-Identifier: LGPL-2.1-or-later */ +@@ +expression x; +constant USEC_INFINITY = USEC_INFINITY; +/* We want to stick with the literal expression in the implementation of timestamp_is_set(), i.e. in time-util.c */ +position p : script:python() { p[0].file != "src/basic/time-util.h" }; +@@ +( +- x > 0 && x < USEC_INFINITY ++ timestamp_is_set(x) +| +- x < USEC_INFINITY && x > 0 ++ timestamp_is_set(x) +| +- x@p > 0 && x != USEC_INFINITY ++ timestamp_is_set(x) +| +- x != USEC_INFINITY && x > 0 ++ timestamp_is_set(x) +| +- x != 0 && x < USEC_INFINITY ++ timestamp_is_set(x) +| +- x < USEC_INFINITY && x != 0 ++ timestamp_is_set(x) +| +- x != 0 && x != USEC_INFINITY ++ timestamp_is_set(x) +| +- x != USEC_INFINITY && x != 0 ++ timestamp_is_set(x) +| +- !IN_SET(x, 0, USEC_INFINITY) ++ timestamp_is_set(x) +| +- !IN_SET(x, USEC_INFINITY, 0) ++ timestamp_is_set(x) +) +@@ +expression x; +constant USEC_INFINITY = USEC_INFINITY; +@@ +( +- x <= 0 || x >= USEC_INFINITY ++ !timestamp_is_set(x) +| +- x >= USEC_INFINITY || x <= 0 ++ !timestamp_is_set(x) +| +- x <= 0 || x == USEC_INFINITY ++ !timestamp_is_set(x) +| +- x == USEC_INFINITY || x <= 0 ++ !timestamp_is_set(x) +| +- x == 0 || x >= USEC_INFINITY ++ !timestamp_is_set(x) +| +- x >= USEC_INFINITY || x == 0 ++ !timestamp_is_set(x) +| +- x == 0 || x == USEC_INFINITY ++ !timestamp_is_set(x) +| +- x == USEC_INFINITY || x == 0 ++ !timestamp_is_set(x) +| +- IN_SET(x, 0, USEC_INFINITY) ++ !timestamp_is_set(x) +| +- IN_SET(x, USEC_INFINITY, 0) ++ !timestamp_is_set(x) +) |