coccinelle: filter out a couple of 'false-positive' transformations

* flag-set.cocci: perform the transformation only if the second
    argument is a constant
  * sd-journal/lookup3.c: skip the cocci completely for this file, since
    it's not "ours"
  * strjoina.cocci: skip the transformation on the "test_strjoina" test,
    since it intentionally tests the "incorrect" expression we're trying to
    transform (the same thing was already done in strjoin.cocci)
This commit is contained in:
Frantisek Sumsal 2021-03-18 11:59:53 +01:00
parent 57ac6959f5
commit ca21d59a3f
3 changed files with 5 additions and 2 deletions

View file

@ -8,7 +8,8 @@ position p : script:python() {
p[0].current_element == "log_set_max_level_realm" or
p[0].current_element == "unichar_is_valid")
};
expression x, y;
expression x;
constant y;
@@
(
- ((x@p) & (y)) == (y)

View file

@ -7,6 +7,7 @@ EXCLUDED_PATHS=(
"src/basic/linux/*"
# Symlinked to test-bus-vtable-cc.cc, which causes issues with the IN_SET macro
"src/libsystemd/sd-bus/test-bus-vtable.c"
"src/libsystemd/sd-journal/lookup3.c"
)
top="$(git rev-parse --show-toplevel)"

View file

@ -1,6 +1,7 @@
@@
position p : script:python() { p[0].current_element != "test_strjoina" };
expression n, m;
expression list s;
@@
- n = strjoina(m, s, NULL);
- n = strjoina@p(m, s, NULL);
+ n = strjoina(m, s);