> +@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
In this rule and the next one, if you remove the final ; from the b = tmp line and from the swap line, and put it into context code afterwards, them the generated code looks better on cases like fs/xfs/xfs_inode.c in the function xfs_lock_two_inodes where two successive swap calls are generated. There are also some cases such as drivers/net/wireless/ath/ath5k/phy.c in the function ath5k_hw_get_median_noise_floor where the swap code makes up a whole if branch. In this cases it would be good to remove the {}. julia > + > +@depends on patch@ > +identifier tmp; > +expression a, b; > +@@ > + > +- tmp = a; > +- a = b; > +- b = tmp; > ++ swap(a, b); > + > +@script:python depends on report@ > +p << r.p; > +@@ > + > +coccilib.report.print_report(p[0], "WARNING opportunity for swap()") > + > +@script:python depends on org@ > +p << r.p; > +@@ > + > +coccilib.org.print_todo(p[0], "WARNING opportunity for swap()") > -- > 2.26.2 > > _______________________________________________ Cocci mailing list Cocci@systeme.lip6.fr https://systeme.lip6.fr/mailman/listinfo/cocci