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 637464c59e
("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:
Denis Efremov 2021-03-08 22:12:15 +03:00 committed by Julia Lawall
parent 5f66f73b9f
commit 3afb532b19
1 changed files with 21 additions and 2 deletions

View File

@ -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@
identifier name, array;
type T;
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[
- 0
];
};
|
struct {
struct {@q
...
T array@p[
- 0