Re: [PATCH v3] coccinelle: semantic patch to check for inappropriate do_div() calls
From: Wen Yang
Date: Sat Jan 11 2020 - 00:06:59 EST
On 2020/1/11 12:35 äå, Markus Elfring wrote:
+@initialize:python@
â
+def filter_out_safe_constants(str):
â
+def construct_warnings(str, suggested_fun):
* I suggest once more to adjust the dependency specifications for the usage
of these functions by SmPL rules.
Most of the functions here are for all operation modes.
* Can the local variable âmsgâ be omitted?
+coccilib.org.print_todo(p[0], construct_warnings("div64_ul"))
I suggest again to move the prefix âdiv64_â into the string literal
of the function implementation.
âdiv64_ulâ indicates the function name we recommend.
As shown in the patch:
+def construct_warnings(suggested_fun):
+ msg="WARNING: do_div() does a 64-by-32 division, please consider
using %s instead."
+ return msg % suggested_fun
...
+coccilib.org.print_todo(p[0], construct_warnings("div64_ul"))
If we delete the prefix "div64_", it may reduce readability.
The SmPL code for two disjunctions could become shorter.
You may suggest to modify it as follows:
+@@
+*do_div(f, \( l \| ul \| ul64 \| sl64 \) );
We agree with Julia:
I don't se any point to this. The code matched will be the same in both
cases. The original code is quite readable, without the ugly \( etc.
--
Regardsï
Wen
Regards,
Markus