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
