mirror of https://gitee.com/openkylin/linux.git
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:
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@
|
||||
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
|
||||
|
|
Loading…
Reference in New Issue