Peter, many thinks!

I keep thing, however, that it ought to be possible to do something like
if ((E1) relop (E2))
if (E1 relop E2)

Am I asking too much :-)

ron


On Mon, Oct 12, 2015 at 2:54 PM Peter Senna Tschudin <[email protected]>
wrote:

> _very risky_:
>
> @@
> expression a, b;
> @@
> -(
> \(a == b\|a != b\)
> -)
>
>
> On Mon, Oct 12, 2015 at 11:48 PM, Peter Senna Tschudin
> <[email protected]> wrote:
> > On Mon, Oct 12, 2015 at 11:45 PM, ron minnich <[email protected]>
> wrote:
> >> wow, I can't type.
> >>
> >> Let me say it more sensibly, even if wrong :-)
> >> [[[ I know this is wrong, it's kind of "what I want it to do" ]]]
> >>
> >> @@
> >> expression E1, E2;
> >> statement S;
> >> function f;
> >> @@
> >> f(...){<...
> >> -if ((E1) && (E2))
> >> +if (E1 && E2)
> >> S
> >> ...> }
> >>
> >> Is that any more sensible?
> >
> > My example adds '== d'...
> >
> > $ cat /tmp/test.cocci
> > @@
> > expression a, b, c, e;
> > @@
> > -((a == b) && (c != e))
> > +a == b && c == d
> >
> > $ clear;spatch /tmp/test.cocci kernel/locking/lockdep.c
> > init_defs_builtins: /usr/local/lib/coccinelle/standard.h
> > HANDLING: kernel/locking/lockdep.c
> > diff =
> > --- kernel/locking/lockdep.c
> > +++ /tmp/cocci-output-9601-607267-lockdep.c
> > @@ -1420,7 +1420,7 @@ print_shortest_lock_dependencies(struct
> >   print_stack_trace(&entry->trace, 2);
> >   printk("\n");
> >
> > - if (depth == 0 && (entry != root)) {
> > + if (depth == 0 && entry == d) {
> >   printk("lockdep:%s bad path found in chain graph\n", __func__);
> >   break;
> >   }
> > @@ -2322,7 +2322,7 @@ print_irq_inversion_bug(struct task_stru
> >   /* Find a middle lock (if one exists) */
> >   depth = get_lock_depth(other);
> >   do {
> > - if (depth == 0 && (entry != root)) {
> > + if (depth == 0 && entry == d) {
> >   printk("lockdep:%s bad path found in chain graph\n", __func__);
> >   break;
> >   }
> > @@ -4198,7 +4198,7 @@ retry:
> >   * if it's not sleeping (or if it's not the current
> >   * task):
> >   */
> > - if (p->state == TASK_RUNNING && p != current)
> > + if (p->state == TASK_RUNNING && p == d)
> >   continue;
> >   if (p->lockdep_depth)
> >   lockdep_print_held_locks(p);
> >
> > Does this help?
>
>
>
> --
> Peter
>
_______________________________________________
Cocci mailing list
[email protected]
https://systeme.lip6.fr/mailman/listinfo/cocci

Reply via email to