On Sun, 7 Dec 2014, SF Markus Elfring wrote:
> > OK, now the C file is manageable, if I drop the 20 lines of comments at
> > the top of the file.
> >
> > The following is also a completely understandable semantic patch:
> >
> >> @single_function_call@
> >> identifier caller, input, work;
> >> type input_type, return_type;
> >> @@
> >> *return_type caller(input_type input)
> >> {
> >> (
> >> work(input);
> >> |
> >> return work(input);
> >> )
> >> }
> >>
> >> @single_function_call_with_pointer@
> >> identifier caller, element, input, work;
> >> type input_type, return_type;
> >> @@
> >> *return_type caller(input_type * input)
> >> {
> >> (
> >> work(input->element);
> >> |
> >> return work(input->element);
> >> )
> >> }
> >
> > So, now what is the problem with the following output?
>
> The source code output is not the problem from the application
> of such a small SmPL script.
>
> I find that my filter patterns contain open issues here.
>
> One part of each SmPL disjunction will always not match in this approach
> if an analysed function implementation has got the return type "void".
> Would the specification of a metavariable "return_type" be also
> unnecessary and inappropriate in this use case?
Currently, return_type does absolutely nothing. You can just drop it.
> > Unless your pattern requires following a lot of different control-flow
> > paths,
> > eg due to sequences of conditionals, the C code parsing time will massively
> > dominate the matching time.
>
> The Coccinelle software has got difficulties with specific Linux source files
> so that it became safer to add the command line parameter "timeout" for
> example.
>
> I can only directly influence the SmPL scripts here. So I try to make them as
> good
> and fast as I can. Other technical improvements will eventually need more
> efforts.
The changes you are considering will have no impact on whether timeout is
needed. If something requires eg 2000 seconds to complete, dropping 1 2
or 100 seconds will have no noticible impact.
julia
_______________________________________________
Cocci mailing list
[email protected]
https://systeme.lip6.fr/mailman/listinfo/cocci