Coccinelle: Add misc/boolconv.cocci
Add a script to check for unneeded conversions to bool. Signed-off-by: Andrew F. Davis <afd@ti.com> Acked-by: Julia Lawall <julia.lawall@lip6.fr> Signed-off-by: Michal Marek <mmarek@suse.com>
This commit is contained in:
Родитель
1001354ca3
Коммит
75238b9e6a
|
@ -0,0 +1,90 @@
|
|||
/// Remove unneeded conversion to bool
|
||||
///
|
||||
//# Relational and logical operators evaluate to bool,
|
||||
//# explicit conversion is overly verbose and unneeded.
|
||||
//
|
||||
// Copyright: (C) 2016 Andrew F. Davis <afd@ti.com> GPLv2.
|
||||
|
||||
virtual patch
|
||||
virtual context
|
||||
virtual org
|
||||
virtual report
|
||||
|
||||
//----------------------------------------------------------
|
||||
// For patch mode
|
||||
//----------------------------------------------------------
|
||||
|
||||
@depends on patch@
|
||||
expression A, B;
|
||||
symbol true, false;
|
||||
@@
|
||||
|
||||
(
|
||||
A == B
|
||||
|
|
||||
A != B
|
||||
|
|
||||
A > B
|
||||
|
|
||||
A < B
|
||||
|
|
||||
A >= B
|
||||
|
|
||||
A <= B
|
||||
|
|
||||
A && B
|
||||
|
|
||||
A || B
|
||||
)
|
||||
- ? true : false
|
||||
|
||||
//----------------------------------------------------------
|
||||
// For context mode
|
||||
//----------------------------------------------------------
|
||||
|
||||
@r depends on !patch@
|
||||
expression A, B;
|
||||
symbol true, false;
|
||||
position p;
|
||||
@@
|
||||
|
||||
(
|
||||
A == B
|
||||
|
|
||||
A != B
|
||||
|
|
||||
A > B
|
||||
|
|
||||
A < B
|
||||
|
|
||||
A >= B
|
||||
|
|
||||
A <= B
|
||||
|
|
||||
A && B
|
||||
|
|
||||
A || B
|
||||
)
|
||||
* ? true : false@p
|
||||
|
||||
//----------------------------------------------------------
|
||||
// For org mode
|
||||
//----------------------------------------------------------
|
||||
|
||||
@script:python depends on r&&org@
|
||||
p << r.p;
|
||||
@@
|
||||
|
||||
msg = "WARNING: conversion to bool not needed here"
|
||||
coccilib.org.print_todo(p[0], msg)
|
||||
|
||||
//----------------------------------------------------------
|
||||
// For report mode
|
||||
//----------------------------------------------------------
|
||||
|
||||
@script:python depends on r&&report@
|
||||
p << r.p;
|
||||
@@
|
||||
|
||||
msg = "WARNING: conversion to bool not needed here"
|
||||
coccilib.report.print_report(p[0], msg)
|
Загрузка…
Ссылка в новой задаче