linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3] scripts/coccinelle/misc/boolinit.cocci: semantic patch for bool issues
@ 2012-02-10 21:05 Julia Lawall
  2012-02-24 23:11 ` Michal Marek
  0 siblings, 1 reply; 3+ messages in thread
From: Julia Lawall @ 2012-02-10 21:05 UTC (permalink / raw)
  To: Julia Lawall
  Cc: kernel-janitors, Gilles Muller, Nicolas Palix, cocci,
	linux-kernel, Michal Marek, bruce.w.allan, joe, rusty

From: Julia Lawall <Julia.Lawall@lip6.fr>

Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>

---
ERROR's changed to WARNING, except in assignment to non-0/1 case.

 scripts/coccinelle/misc/boolinit.cocci |  178 +++++++++++++++++++++++++++++++++
 1 file changed, 178 insertions(+)

diff --git a/scripts/coccinelle/misc/boolinit.cocci b/scripts/coccinelle/misc/boolinit.cocci
new file mode 100644
index 0000000..b7edfdb
--- /dev/null
+++ b/scripts/coccinelle/misc/boolinit.cocci
@@ -0,0 +1,178 @@
+/// Bool initializations should use true and false.  Bool tests don't need
+/// comparisons.  Based on contributions from Joe Perches, Rusty Russell
+/// and Bruce W Allan.
+///
+// Confidence: High
+// Copyright: (C) 2012 Julia Lawall, INRIA/LIP6.  GPLv2.
+// Copyright: (C) 2012 Gilles Muller, INRIA/LiP6.  GPLv2.
+// URL: http://coccinelle.lip6.fr/
+// Options: -include_headers
+
+virtual patch
+virtual context
+virtual org
+virtual report
+
+@depends on patch@
+bool t;
+symbol true;
+symbol false;
+@@
+
+(
+- t == true
++ t
+|
+- true == t
++ t
+|
+- t != true
++ !t
+|
+- true != t
++ !t
+|
+- t == false
++ !t
+|
+- false == t
++ !t
+|
+- t != false
++ t
+|
+- false != t
++ t
+)
+
+@depends on patch disable is_zero, isnt_zero@
+bool t;
+@@
+
+(
+- t == 1
++ t
+|
+- t != 1
++ !t
+|
+- t == 0
++ !t
+|
+- t != 0
++ t
+)
+
+@depends on patch@
+bool b;
+@@
+(
+ b =
+- 0
++ false
+|
+ b =
+- 1
++ true
+)
+
+// ---------------------------------------------------------------------
+
+@r1 depends on !patch@
+bool t;
+position p;
+@@
+
+(
+* t@p == true
+|
+* true == t@p
+|
+* t@p != true
+|
+* true != t@p
+|
+* t@p == false
+|
+* false == t@p
+|
+* t@p != false
+|
+* false != t@p
+)
+
+@r2 depends on !patch disable is_zero, isnt_zero@
+bool t;
+position p;
+@@
+
+(
+* t@p == 1
+|
+* t@p != 1
+|
+* t@p == 0
+|
+* t@p != 0
+)
+
+@r3 depends on !patch@
+bool b;
+position p1,p2;
+constant c;
+@@
+(
+*b@p1 = 0
+|
+*b@p1 = 1
+|
+*b@p2 = c
+)
+
+@script:python depends on org@
+p << r1.p;
+@@
+
+cocci.print_main("WARNING: Comparison to bool",p)
+
+@script:python depends on org@
+p << r2.p;
+@@
+
+cocci.print_main("WARNING: Comparison of bool to 0/1",p)
+
+@script:python depends on org@
+p1 << r3.p1;
+@@
+
+cocci.print_main("WARNING: Assignment of bool to 0/1",p1)
+
+@script:python depends on org@
+p2 << r3.p2;
+@@
+
+cocci.print_main("ERROR: Assignment of bool to non-0/1 constant",p2)
+
+@script:python depends on report@
+p << r1.p;
+@@
+
+coccilib.report.print_report(p[0],"WARNING: Comparison to bool")
+
+@script:python depends on report@
+p << r2.p;
+@@
+
+coccilib.report.print_report(p[0],"WARNING: Comparison of bool to 0/1")
+
+@script:python depends on report@
+p1 << r3.p1;
+@@
+
+coccilib.report.print_report(p1[0],"WARNING: Assignment of bool to 0/1")
+
+@script:python depends on report@
+p2 << r3.p2;
+@@
+
+coccilib.report.print_report(p2[0],"ERROR: Assignment of bool to non-0/1 constant")


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH v3] scripts/coccinelle/misc/boolinit.cocci: semantic patch for bool issues
  2012-02-10 21:05 [PATCH v3] scripts/coccinelle/misc/boolinit.cocci: semantic patch for bool issues Julia Lawall
@ 2012-02-24 23:11 ` Michal Marek
  2012-02-25  7:31   ` Julia Lawall
  0 siblings, 1 reply; 3+ messages in thread
From: Michal Marek @ 2012-02-24 23:11 UTC (permalink / raw)
  To: Julia Lawall
  Cc: Julia Lawall, kernel-janitors, Gilles Muller, Nicolas Palix,
	cocci, linux-kernel, bruce.w.allan, joe, rusty

On Fri, Feb 10, 2012 at 10:05:18PM +0100, Julia Lawall wrote:
> From: Julia Lawall <Julia.Lawall@lip6.fr>
> 
> Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
> 
> ---
> ERROR's changed to WARNING, except in assignment to non-0/1 case.

Applied to kbuild.git#misc.

Michal

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH v3] scripts/coccinelle/misc/boolinit.cocci: semantic patch for bool issues
  2012-02-24 23:11 ` Michal Marek
@ 2012-02-25  7:31   ` Julia Lawall
  0 siblings, 0 replies; 3+ messages in thread
From: Julia Lawall @ 2012-02-25  7:31 UTC (permalink / raw)
  To: Michal Marek
  Cc: Julia Lawall, Julia Lawall, kernel-janitors, Gilles Muller,
	Nicolas Palix, cocci, linux-kernel, bruce.w.allan, joe, rusty



On Sat, 25 Feb 2012, Michal Marek wrote:

> On Fri, Feb 10, 2012 at 10:05:18PM +0100, Julia Lawall wrote:
>> From: Julia Lawall <Julia.Lawall@lip6.fr>
>>
>> Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
>>
>> ---
>> ERROR's changed to WARNING, except in assignment to non-0/1 case.
>
> Applied to kbuild.git#misc.

Thanks!

julia

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2012-02-25  7:31 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-02-10 21:05 [PATCH v3] scripts/coccinelle/misc/boolinit.cocci: semantic patch for bool issues Julia Lawall
2012-02-24 23:11 ` Michal Marek
2012-02-25  7:31   ` Julia Lawall

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).