[Cocci] spatch defect: C90 initializers?

Joe Perches joe at perches.com
Thu Sep 9 08:56:21 CEST 2010


On Thu, 2010-09-09 at 08:28 +0200, Julia Lawall wrote:
> you could also just add a second rule to your semantic match:
> 
> @@
> identifier I;
> @@
> 
> * struct pci_driver I { .name = ..., };

That doesn't seem to work.

$ cat find_pci_name.cocci
@@
identifier I;
@@

* struct pci_driver I { .name = ..., }
$ cat foo.c
#include <linux/kernel.h>
#include <linux/pci.h>

static struct pci_driver foo = {
	.name = "name",
};

static struct pci_driver bar = {
	NULL, "name"
};
$ spatch -version
spatch version 0.2.2 with Python support
$ spatch -sp_file find_pci_name.cocci foo.c
init_defs_builtins: /usr/local/share/coccinelle/standard.h
43 44
Fatal error: exception Failure("minus: parse error: 
 = File "find_pci_name.cocci", line 5, column 22,  charpos = 43
    around = '{', whole content = * struct pci_driver I { .name = ..., };
")
$

How would it find a non-c90 initializer like bar?





More information about the Cocci mailing list