Commit 3afb532b authored by Denis Efremov's avatar Denis Efremov Committed by Julia Lawall
Browse files

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 637464c5
("ACPI: NFIT: Fix flexible_array.cocci warnings").

Signed-off-by: default avatarDenis Efremov <efremov@linux.com>
Signed-off-by: default avatarJulia Lawall <julia.lawall@inria.fr>
parent 5f66f73b
Loading
Loading
Loading
Loading
+21 −2
Original line number Diff line number Diff line
@@ -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