On Tue, 24 Sep 2019, Markus Elfring wrote:
> >> @@
> >> -rc = x;
> >
> > Replace by - lrc@rc = x;
>
> I have constructed the following test script for the semantic patch language.
>
> @check1@
> expression x;
> identifier rc;
> local idexpression lrc;
> position p;
> @@
> lrc@rc = x@p;
> return lrc;
>
> @check2@
> identifier check1.rc;
> position p;
> type t;
> @@
> t rc@p;
> ... when != rc
>
> @script:python to_do1@
> p << check1.p;
> @@
> coccilib.org.print_todo(p[0],
> "WARNING: An expression was assigned to a local
> variable before it will be returned by the subsequent statement.")
>
> @script:python to_do2@
> p << check2.p;
> v << check2.rc;
> @@
> coccilib.org.print_todo(p[0],
> "INFO: May the local variable \""
> + v
> + "\" be deleted?")
>
>
> I wonder about a corresponding test result.
>
> elfring@Sonne:~/Projekte/Coccinelle/janitor> spatch --parse-cocci
> move_code_to_return1.cocci
> …
> scriptmeta: semantic error: bad rule check2 or bad variable rc
> File "move_code_to_return1.cocci", line 26, column 14, charpos = 474
> around = ';',
> whole content = v << check2.rc;
>
>
> I imagine that it would be easier to understand that the content from
> the inherited metavariable can be directly used.
> The SmPL specification “v << check1.rc;” gets accepted by Coccinelle software
> and seems to work then in the way I would expect it also for the other script
> variant.
> Will any more adjustments become relevant for such a source code search
> approach?
rc comes from check1 so it should be inherited from check1.
julia
_______________________________________________
Cocci mailing list
[email protected]
https://systeme.lip6.fr/mailman/listinfo/cocci