Coccinelle archive mirror
 help / color / mirror / Atom feed
From: Markus Elfring <Markus.Elfring@web.de>
To: Julia Lawall <julia.lawall@inria.fr>, cocci@inria.fr
Subject: Re: [cocci] Searching for repeated source code with SmPL?
Date: Sun, 12 May 2024 08:48:41 +0200	[thread overview]
Message-ID: <c26d41ba-7d55-402b-92a0-5c3d4112893a@web.de> (raw)
In-Reply-To: <alpine.DEB.2.22.394.2405111803140.14453@hadrien>

> Your semantic patch needs to be:
>
> @display@
> @@
>  my_action(...);
>  <+... when any
> *my_action(...);
>  ...+>
>
> Without that, a call to my_action is forbidden in the region matched by
> the <+... ...+>.  Because any kind of dot thing matches the shortest path
> between what comes before and what comes after (here the end of the function).

Can the Coccinelle software inform better about the case that the shortest
path constraint was “accidentally overlooked” in a SmPL script?


There are further development challenges to consider.
See also a corresponding transformation approach by the means of
another tiny script for the semantic patch language:

@adjustment@
@@
 my_action(
-          ...
+          0
          );
 <+... when any
-my_action(...);
 ...+>


Test result:
Markus_Elfring@Sonne:…/Projekte/Coccinelle/Probe> spatch use_one_test_call.cocci repeated_three_calls.c
…
previous modification:

  <<< 0
CONTEXT

According to environment 0:


current modification:
MINUS

According to environment 0:


adjustment: already tagged token:
C code context
File "repeated_three_calls.c", line 4, column 12, charpos = 48
  around = ')',
  whole content =  my_action(2);


Can the data processing be improved anyhow?

Regards,
Markus

  parent reply	other threads:[~2024-05-12  6:48 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-05-06 10:08 [cocci] Searching for repeated source code with SmPL? Markus Elfring
2024-05-06 10:09 ` Julia Lawall
2024-05-06 11:03   ` Markus Elfring
2024-05-06 12:10   ` Markus Elfring
2024-05-06 12:16     ` Julia Lawall
2024-05-06 12:40       ` Markus Elfring
2024-05-11 15:36   ` Markus Elfring
2024-05-11 16:04     ` Julia Lawall
2024-05-11 16:35       ` Markus Elfring
2024-05-11 16:37         ` Julia Lawall
2024-05-11 17:02           ` Markus Elfring
2024-05-11 17:12             ` Julia Lawall
2024-05-11 17:21               ` Markus Elfring
2024-05-11 17:33                 ` Julia Lawall
2024-05-12  6:48       ` Markus Elfring [this message]
2024-05-12  7:34         ` Julia Lawall
2024-05-12  8:01           ` Markus Elfring
2024-05-12  8:10             ` Julia Lawall
2024-05-12  8:33               ` Markus Elfring
2024-05-12  9:17                 ` Julia Lawall
2024-05-12  9:30                   ` Markus Elfring
2024-05-13  9:34                   ` Markus Elfring
2024-05-12 11:24           ` Markus Elfring
2024-05-12 12:53             ` Julia Lawall
2024-05-12 13:07               ` Markus Elfring
2024-05-12 13:13                 ` Julia Lawall
2024-05-12 13:22                   ` Markus Elfring
2024-05-12 14:51                   ` Markus Elfring
2024-05-12 14:57                     ` Julia Lawall
2024-05-11  7:15 ` Markus Elfring
2024-05-22  8:20 ` Markus Elfring
2024-05-22  8:24   ` Julia Lawall
2024-05-22  8:44     ` Markus Elfring
2024-05-22 13:12     ` Markus Elfring
2024-05-22 15:34       ` Julia Lawall
2024-05-22 16:06         ` Markus Elfring

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=c26d41ba-7d55-402b-92a0-5c3d4112893a@web.de \
    --to=markus.elfring@web.de \
    --cc=cocci@inria.fr \
    --cc=julia.lawall@inria.fr \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).