diff options
Diffstat (limited to 'scripts/coccinelle')
-rw-r--r-- | scripts/coccinelle/iterators/use_after_iter.cocci | 3 | ||||
-rw-r--r-- | scripts/coccinelle/misc/boolinit.cocci | 44 |
2 files changed, 33 insertions, 14 deletions
diff --git a/scripts/coccinelle/iterators/use_after_iter.cocci b/scripts/coccinelle/iterators/use_after_iter.cocci index ce8cc9c006e5..66a1140474c8 100644 --- a/scripts/coccinelle/iterators/use_after_iter.cocci +++ b/scripts/coccinelle/iterators/use_after_iter.cocci @@ -35,6 +35,7 @@ iterator name hlist_for_each_entry_from; iterator name hlist_for_each_entry_safe; statement S; position p1,p2; +type T; @@ ( @@ -125,6 +126,8 @@ sizeof(<+...c...+>) | &c->member | +T c; +| c = E | *c@p2 diff --git a/scripts/coccinelle/misc/boolinit.cocci b/scripts/coccinelle/misc/boolinit.cocci index b9abed49cd95..aabb581fab5c 100644 --- a/scripts/coccinelle/misc/boolinit.cocci +++ b/scripts/coccinelle/misc/boolinit.cocci @@ -13,10 +13,17 @@ virtual context virtual org virtual report +@boolok@ +symbol true,false; +@@ +( +true +| +false +) + @depends on patch@ bool t; -symbol true; -symbol false; @@ ( @@ -63,7 +70,7 @@ bool t; + t ) -@depends on patch@ +@depends on patch && boolok@ bool b; @@ ( @@ -116,15 +123,24 @@ position p; * t@p != 0 ) -@r3 depends on !patch@ +@r3 depends on !patch && boolok@ bool b; -position p1,p2; -constant c; +position p1; @@ ( *b@p1 = 0 | *b@p1 = 1 +) + +@r4 depends on !patch@ +bool b; +position p2; +identifier i; +constant c != {0,1}; +@@ +( + b = i | *b@p2 = c ) @@ -139,19 +155,19 @@ cocci.print_main("WARNING: Comparison to bool",p) p << r2.p; @@ -cocci.print_main("WARNING: Comparison of bool to 0/1",p) +cocci.print_main("WARNING: Comparison of 0/1 to bool variable",p) @script:python depends on org@ p1 << r3.p1; @@ -cocci.print_main("WARNING: Assignment of bool to 0/1",p1) +cocci.print_main("WARNING: Assignment of 0/1 to bool variable",p1) @script:python depends on org@ -p2 << r3.p2; +p2 << r4.p2; @@ -cocci.print_main("ERROR: Assignment of bool to non-0/1 constant",p2) +cocci.print_main("ERROR: Assignment of non-0/1 constant to bool variable",p2) @script:python depends on report@ p << r1.p; @@ -163,16 +179,16 @@ coccilib.report.print_report(p[0],"WARNING: Comparison to bool") p << r2.p; @@ -coccilib.report.print_report(p[0],"WARNING: Comparison of bool to 0/1") +coccilib.report.print_report(p[0],"WARNING: Comparison of 0/1 to bool variable") @script:python depends on report@ p1 << r3.p1; @@ -coccilib.report.print_report(p1[0],"WARNING: Assignment of bool to 0/1") +coccilib.report.print_report(p1[0],"WARNING: Assignment of 0/1 to bool variable") @script:python depends on report@ -p2 << r3.p2; +p2 << r4.p2; @@ -coccilib.report.print_report(p2[0],"ERROR: Assignment of bool to non-0/1 constant") +coccilib.report.print_report(p2[0],"ERROR: Assignment of non-0/1 constant to bool variable") |