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