All of lore.kernel.org
 help / color / mirror / Atom feed
From: elfring@users.sourceforge.net (SF Markus Elfring)
To: cocci@systeme.lip6.fr
Subject: [Cocci] Comparing statement lists with SmPL
Date: Tue, 15 Aug 2017 21:04:30 +0200	[thread overview]
Message-ID: <69d615e4-0f62-2289-dd59-97c625ba47e8@users.sourceforge.net> (raw)
In-Reply-To: <alpine.DEB.2.20.1708151930140.4600@hadrien>

>> Is this programming interface usable to determine if any code could be combined
>> to some degree?
> 
> I don't really understand the questions.

I try again to describe the use case I became interested in a bit more.


> Statement list metavariables can be used once they are bound like any other metavariables.

Can it be that they will need any special computing power occasionally?


I have tried the following small SmPL script out.

@duplicated_code@
identifier work;
statement list sl;
type T;
@@
 T work(...)
 {
 ... when any
*if ((...) < 0) {
*   sl
*}
 ...
*if ((...) < 0) {
*   sl
*}
 ...
 }


The source code analysis results look promising by this command.

elfring@Sonne:~/Projekte/Linux/next-patched> git checkout next-20170803 && spatch.opt ~/Projekte/Coccinelle/janitor/show_same_statements1.cocci sound/pci/rme9652/hdsp.c
?
@@ -793,11 +793,6 @@ static int hdsp_get_iobox_version (struc
?
@@ -5382,19 +5372,11 @@ static int snd_hdsp_probe(struct pci_dev
?


How should such update candidates be transformed further?


> However they can only be bound to the complete sequence of statements in a block.  So
> 
> @@
> statement list sl;
> @@
> if (x) {
>   sl
> }
> 
> is ok, but
> 
> @@
> statement list sl;
> @@
> if (x) {
>   one();
>   sl
>   two();
> }
> 
> is not.

Thanks for your example.

* I do not like the mentioned software restriction at the moment.

* How can be determined how many code is equivalent between two statement list variables?

Regards,
Markus

  reply	other threads:[~2017-08-15 19:04 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-08-15 17:26 [Cocci] Comparing statement lists with SmPL SF Markus Elfring
2017-08-15 17:33 ` Julia Lawall
2017-08-15 19:04   ` SF Markus Elfring [this message]
2017-08-15 19:09     ` Julia Lawall
2017-08-15 19:14       ` SF Markus Elfring
2017-08-15 20:00     ` SF Markus Elfring
2017-08-15 20:09       ` Julia Lawall
2017-08-15 20:15         ` SF Markus Elfring
2017-08-16  6:48         ` SF Markus Elfring
2017-08-16  7:03           ` SF Markus Elfring
2017-08-16  9:20             ` Julia Lawall
2017-08-16 10:42               ` SF Markus Elfring
2017-08-16  9:01           ` Julia Lawall
2017-08-16  7:35         ` SF Markus Elfring
2017-08-17 17:54           ` SF Markus Elfring
2017-08-17 18:44             ` Julia Lawall
2017-08-17 19:26               ` SF Markus Elfring
2017-08-17 19:31                 ` Julia Lawall
2017-08-17 19:43                   ` SF Markus Elfring
2017-08-22  9:19                   ` SF Markus Elfring
2017-08-22  9:28                     ` Julia Lawall
2017-08-22 10:00                       ` SF Markus Elfring
     [not found]                         ` <alpine.DEB.2.20.1708221202380.3178@hadrien>
2017-08-22 10:12                           ` SF Markus Elfring
2017-08-22 10:15                             ` Julia Lawall
2017-08-22 10:20                               ` SF Markus Elfring
     [not found]                                 ` <alpine.DEB.2.20.1708221221260.3178@hadrien>
2017-08-22 10:33                                   ` SF Markus Elfring
2017-08-23 14:43                     ` SF Markus Elfring
     [not found]                       ` <alpine.DEB.2.20.1708231644340.3150@hadrien>
2017-08-23 15:39                         ` SF Markus Elfring
     [not found]                           ` <alpine.DEB.2.20.1708231742480.3150@hadrien>
2017-08-23 15:50                             ` SF Markus Elfring
2017-08-24  7:56                             ` SF Markus Elfring
2017-08-16  6:10   ` SF Markus Elfring
2017-08-16  6:26     ` Julia Lawall
2017-08-16  6:38       ` SF 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=69d615e4-0f62-2289-dd59-97c625ba47e8@users.sourceforge.net \
    --to=elfring@users.sourceforge.net \
    --cc=cocci@systeme.lip6.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.