On Mon, 15 Feb 2016, Nicholas Mc Guire wrote:

>
> Hi !
>
>  --no-loops is documented as:
> <snip>
>        --no-loops
>               drop all back edges derived from looping constructs - unsafe
> <snip>
>
>  the background is that some scanners will simply not make any
>  progress (e.g. linux-next/lib/rbtree.c:__rb_insert() is a perfect
>  "hang" without --no-loops for even simple scanners
>
>  what exactly does unsafe here mean ?

The correctness of a rules might require following back edges.  For
example,

a();
... when != b();

in code like

while (x) {
  b();
  a();
}
return;

With --no-loops, the rule above would match, while with loops taken into
account it should not.

julia
_______________________________________________
Cocci mailing list
[email protected]
https://systeme.lip6.fr/mailman/listinfo/cocci

Reply via email to