cocci.inria.fr archive mirror
 help / color / mirror / Atom feed
* [Cocci] Problem with partial patch generation
@ 2021-02-15 11:24 Denis Efremov
  2021-02-15 11:45 ` Julia Lawall
  2021-02-15 11:47 ` Julia Lawall
  0 siblings, 2 replies; 5+ messages in thread
From: Denis Efremov @ 2021-02-15 11:24 UTC (permalink / raw)
  To: cocci

Hi,

I wrote a simple rule (swap.cocci):

virtual patch

@depends on patch@
identifier tmp;
expression a, b;
type T;
@@

(
- T tmp;
|
- T tmp = 0;
|
- T *tmp = NULL;
)
... when != tmp
- tmp = a;
- a = b;
- b = tmp;
+ swap(a, b);
... when != tmp

I would expect it to remove a local variable only if there is a match
with swap template.

However, it generates "partial" patch on 5.11 linux code:
$ spatch --version
spatch version 1.0.8-00201-g267f9cf8cc82 compiled with OCaml version 4.11.1
$ spatch -D patch --sp-file swap.cocci mm/filemap.c
--- mm/filemap.c
+++ /tmp/cocci-output-445786-88aa66-filemap.c
@@ -2348,7 +2348,7 @@ static int generic_file_buffered_read_ge
        struct file_ra_state *ra = &filp->f_ra;
        pgoff_t index = iocb->ki_pos >> PAGE_SHIFT;
        pgoff_t last_index = (iocb->ki_pos + iter->count + PAGE_SIZE-1) >> PAGE_SHIFT;
-       int i, j, nr_got, err = 0;
+       int i, nr_got, err = 0;
 
        nr = min_t(unsigned long, last_index - index, nr);
 find_page:

How can I improve the rule?

Thanks,
Denis
_______________________________________________
Cocci mailing list
Cocci@systeme.lip6.fr
https://systeme.lip6.fr/mailman/listinfo/cocci

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2021-02-15 12:03 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-02-15 11:24 [Cocci] Problem with partial patch generation Denis Efremov
2021-02-15 11:45 ` Julia Lawall
2021-02-15 11:47 ` Julia Lawall
2021-02-15 11:51   ` Denis Efremov
2021-02-15 12:03     ` Julia Lawall

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 NNTP newsgroup(s).