coccinelle: misc: restrict patch mode in flexible_array.cocci
Skip patches generation for structs with a single field. Changing a zero-length array to a flexible array member in a struct with no named members breaks the compilation. However, reporting such cases is still valuable, e.g. commit 637464c59e0b ("ACPI: NFIT: Fix flexible_array.cocci warnings"). Signed-off-by: Denis Efremov <efremov@linux.com> Signed-off-by: Julia Lawall <julia.lawall@inria.fr>
This commit is contained in:
parent
5f66f73b9f
commit
3afb532b19
@ -51,21 +51,40 @@ position p : script:python() { relevant(p) };
|
|||||||
};
|
};
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@only_field depends on patch@
|
||||||
|
identifier name, array;
|
||||||
|
type T;
|
||||||
|
position q;
|
||||||
|
@@
|
||||||
|
|
||||||
|
(
|
||||||
|
struct name {@q
|
||||||
|
T array[0];
|
||||||
|
};
|
||||||
|
|
|
||||||
|
struct {@q
|
||||||
|
T array[0];
|
||||||
|
};
|
||||||
|
)
|
||||||
|
|
||||||
@depends on patch@
|
@depends on patch@
|
||||||
identifier name, array;
|
identifier name, array;
|
||||||
type T;
|
type T;
|
||||||
position p : script:python() { relevant(p) };
|
position p : script:python() { relevant(p) };
|
||||||
|
// position @q with rule "only_field" simplifies
|
||||||
|
// handling of bitfields, arrays, etc.
|
||||||
|
position q != only_field.q;
|
||||||
@@
|
@@
|
||||||
|
|
||||||
(
|
(
|
||||||
struct name {
|
struct name {@q
|
||||||
...
|
...
|
||||||
T array@p[
|
T array@p[
|
||||||
- 0
|
- 0
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
|
|
||||||
struct {
|
struct {@q
|
||||||
...
|
...
|
||||||
T array@p[
|
T array@p[
|
||||||
- 0
|
- 0
|
||||||
|
Loading…
x
Reference in New Issue
Block a user