提交 1a617a84 编写于 作者: J Johan Hovold 提交者: Michal Marek

coccinelle: misc: remove "complex return code" warnings

This effectively reverts 932058a5 ("coccinelle: misc: semantic patch
to delete overly complex return code processing").

There can be both symmetry and readability reasons for not wanting to do
the final function call as part of the return statement and to maintain
a clear separation of success and error paths.

Since this is in no way mandated by the coding standard, let's just
remove this semantic patch to avoid having "clean up" patches being
posted over and over in response to these Coccinelle warnings.
Signed-off-by: NJohan Hovold <johan@kernel.org>
Acked-by: NJulia Lawall <julia.lawall@lip6.fr>
Signed-off-by: NMichal Marek <mmarek@suse.cz>
上级 5b169108
/// Simplify a trivial if-return sequence. Possibly combine with a
/// preceding function call.
///
// Confidence: High
// Copyright: (C) 2014 Julia Lawall, INRIA/LIP6. GPLv2.
// Copyright: (C) 2014 Gilles Muller, INRIA/LiP6. GPLv2.
// URL: http://coccinelle.lip6.fr/
// Comments:
// Options: --no-includes --include-headers
virtual patch
virtual context
virtual org
virtual report
@r depends on patch@
local idexpression e;
identifier i,f,fn;
@@
fn(...) { <...
- e@i =
+ return
f(...);
-if (i != 0) return i;
-return 0;
...> }
@depends on patch@
identifier r.i;
type t;
@@
-t i;
... when != i
@depends on patch@
expression e;
@@
-if (e != 0)
return e;
-return 0;
// -----------------------------------------------------------------------
@s1 depends on context || org || report@
local idexpression e;
identifier i,f,fn;
position p,p1,p2;
@@
fn(...) { <...
* e@i@p = f(...);
if (\(i@p1 != 0\|i@p2 < 0\))
return i;
return 0;
...> }
@s2 depends on context || org || report forall@
identifier s1.i;
type t;
position q,s1.p;
expression e,f;
@@
* t i@q;
... when != i
e@p = f(...);
@s3 depends on context || org || report@
expression e;
position p1!=s1.p1;
position p2!=s1.p2;
@@
*if (\(e@p1 != 0\|e@p2 < 0\))
return e;
return 0;
// -----------------------------------------------------------------------
@script:python depends on org@
p << s1.p;
p1 << s1.p1;
q << s2.q;
@@
cocci.print_main("decl",q)
cocci.print_secs("use",p)
cocci.include_match(False)
@script:python depends on org@
p << s1.p;
p2 << s1.p2;
q << s2.q;
@@
cocci.print_main("decl",q)
cocci.print_secs("use with questionable test",p)
cocci.include_match(False)
@script:python depends on org@
p << s1.p;
p1 << s1.p1;
@@
cocci.print_main("use",p)
@script:python depends on org@
p << s1.p;
p2 << s1.p2;
@@
cocci.print_main("use with questionable test",p)
@script:python depends on org@
p << s3.p1;
@@
cocci.print_main("test",p)
@script:python depends on org@
p << s3.p2;
@@
cocci.print_main("questionable test",p)
// -----------------------------------------------------------------------
@script:python depends on report@
p << s1.p;
p1 << s1.p1;
q << s2.q;
@@
msg = "WARNING: end returns can be simpified and declaration on line %s can be dropped" % (q[0].line)
coccilib.report.print_report(p[0],msg)
cocci.include_match(False)
@script:python depends on report@
p << s1.p;
p1 << s1.p1;
q << s2.q
;
@@
msg = "WARNING: end returns may be simpified if negative or 0 value and declaration on line %s can be dropped" % (q[0].line)
coccilib.report.print_report(p[0],msg)
cocci.include_match(False)
@script:python depends on report@
p << s1.p;
p1 << s1.p1;
@@
msg = "WARNING: end returns can be simpified"
coccilib.report.print_report(p[0],msg)
@script:python depends on report@
p << s1.p;
p2 << s1.p2;
@@
msg = "WARNING: end returns can be simpified if negative or 0 value"
coccilib.report.print_report(p[0],msg)
@script:python depends on report@
p << s3.p1;
@@
msg = "WARNING: end returns can be simpified"
coccilib.report.print_report(p[0],msg)
@script:python depends on report@
p << s3.p2;
@@
msg = "WARNING: end returns can be simpified if tested value is negative or 0"
coccilib.report.print_report(p[0],msg)
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册