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