Commit e71ec0bc authored by Daniel Thompson's avatar Daniel Thompson Committed by Julia Lawall

scripts: coccinelle: allow list_entry_is_head() to use pos

Currently use_after_iter.cocci generates false positives for code of the
following form:
~~~
	list_for_each_entry(d, &ddata->irq_list, node) {
		if (irq == d->irq)
			break;
	}

	if (list_entry_is_head(d, &ddata->irq_list, node))
		return IRQ_NONE;
~~~
[This specific example comes from drivers/power/supply/cpcap-battery.c]

Most list macros use list_entry_is_head() as loop exit condition meaning it
is not unsafe to reuse pos (a.k.a. d) in the code above.

Let's avoid reporting these cases.
Signed-off-by: default avatarDaniel Thompson <daniel.thompson@linaro.org>
Signed-off-by: default avatarJulia Lawall <Julia.Lawall@inria.fr>
parent 9eec0792
...@@ -123,6 +123,8 @@ hlist_for_each_entry_safe(c,...) S ...@@ -123,6 +123,8 @@ hlist_for_each_entry_safe(c,...) S
| |
list_remove_head(x,c,...) list_remove_head(x,c,...)
| |
list_entry_is_head(c,...)
|
sizeof(<+...c...+>) sizeof(<+...c...+>)
| |
&c->member &c->member
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment