coccinelle: misc: move constants to the right
Move constants to the right in binary operators. Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr> Signed-off-by: Michal Marek <mmarek@suse.com>
This commit is contained in:
Родитель
60fb33afb9
Коммит
74a8478f9e
|
@ -0,0 +1,171 @@
|
|||
/// Move constants to the right of binary operators.
|
||||
//# Depends on personal taste in some cases.
|
||||
///
|
||||
// Confidence: Moderate
|
||||
// Copyright: (C) 2015 Copyright: (C) 2015 Julia Lawall, Inria. GPLv2.
|
||||
// URL: http://coccinelle.lip6.fr/
|
||||
// Options: --no-includes --include-headers
|
||||
|
||||
virtual patch
|
||||
virtual context
|
||||
virtual org
|
||||
virtual report
|
||||
|
||||
@r1 depends on patch && !context && !org && !report
|
||||
disable bitor_comm, neg_if_exp@
|
||||
constant c,c1;
|
||||
local idexpression i;
|
||||
expression e,e1,e2;
|
||||
binary operator b = {==,!=,&,|};
|
||||
type t;
|
||||
@@
|
||||
|
||||
(
|
||||
c b (c1)
|
||||
|
|
||||
sizeof(t) b e1
|
||||
|
|
||||
sizeof e b e1
|
||||
|
|
||||
i b e1
|
||||
|
|
||||
c | e1 | e2 | ...
|
||||
|
|
||||
c | (e ? e1 : e2)
|
||||
|
|
||||
- c
|
||||
+ e
|
||||
b
|
||||
- e
|
||||
+ c
|
||||
)
|
||||
|
||||
@r2 depends on patch && !context && !org && !report
|
||||
disable gtr_lss, gtr_lss_eq, not_int2@
|
||||
constant c,c1;
|
||||
expression e,e1,e2;
|
||||
binary operator b;
|
||||
binary operator b1 = {<,<=},b2 = {<,<=};
|
||||
binary operator b3 = {>,>=},b4 = {>,>=};
|
||||
local idexpression i;
|
||||
type t;
|
||||
@@
|
||||
|
||||
(
|
||||
c b c1
|
||||
|
|
||||
sizeof(t) b e1
|
||||
|
|
||||
sizeof e b e1
|
||||
|
|
||||
(e1 b1 e) && (e b2 e2)
|
||||
|
|
||||
(e1 b3 e) && (e b4 e2)
|
||||
|
|
||||
i b e
|
||||
|
|
||||
- c < e
|
||||
+ e > c
|
||||
|
|
||||
- c <= e
|
||||
+ e >= c
|
||||
|
|
||||
- c > e
|
||||
+ e < c
|
||||
|
|
||||
- c >= e
|
||||
+ e <= c
|
||||
)
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
@r1_context depends on !patch && (context || org || report)
|
||||
disable bitor_comm, neg_if_exp exists@
|
||||
type t;
|
||||
binary operator b = {==,!=,&,|};
|
||||
constant c, c1;
|
||||
expression e, e1, e2;
|
||||
local idexpression i;
|
||||
position j0;
|
||||
@@
|
||||
|
||||
(
|
||||
c b (c1)
|
||||
|
|
||||
sizeof(t) b e1
|
||||
|
|
||||
sizeof e b e1
|
||||
|
|
||||
i b e1
|
||||
|
|
||||
c | e1 | e2 | ...
|
||||
|
|
||||
c | (e ? e1 : e2)
|
||||
|
|
||||
* c@j0 b e
|
||||
)
|
||||
|
||||
@r2_context depends on !patch && (context || org || report)
|
||||
disable gtr_lss, gtr_lss_eq, not_int2 exists@
|
||||
type t;
|
||||
binary operator b, b1 = {<,<=}, b2 = {<,<=}, b3 = {>,>=}, b4 = {>,>=};
|
||||
constant c, c1;
|
||||
expression e, e1, e2;
|
||||
local idexpression i;
|
||||
position j0;
|
||||
@@
|
||||
|
||||
(
|
||||
c b c1
|
||||
|
|
||||
sizeof(t) b e1
|
||||
|
|
||||
sizeof e b e1
|
||||
|
|
||||
(e1 b1 e) && (e b2 e2)
|
||||
|
|
||||
(e1 b3 e) && (e b4 e2)
|
||||
|
|
||||
i b e
|
||||
|
|
||||
* c@j0 < e
|
||||
|
|
||||
* c@j0 <= e
|
||||
|
|
||||
* c@j0 > e
|
||||
|
|
||||
* c@j0 >= e
|
||||
)
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
@script:python r1_org depends on org@
|
||||
j0 << r1_context.j0;
|
||||
@@
|
||||
|
||||
msg = "Move constant to right."
|
||||
coccilib.org.print_todo(j0[0], msg)
|
||||
|
||||
@script:python r2_org depends on org@
|
||||
j0 << r2_context.j0;
|
||||
@@
|
||||
|
||||
msg = "Move constant to right."
|
||||
coccilib.org.print_todo(j0[0], msg)
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
@script:python r1_report depends on report@
|
||||
j0 << r1_context.j0;
|
||||
@@
|
||||
|
||||
msg = "Move constant to right."
|
||||
coccilib.report.print_report(j0[0], msg)
|
||||
|
||||
@script:python r2_report depends on report@
|
||||
j0 << r2_context.j0;
|
||||
@@
|
||||
|
||||
msg = "Move constant to right."
|
||||
coccilib.report.print_report(j0[0], msg)
|
||||
|
Загрузка…
Ссылка в новой задаче