On Fri, 7 Jun 2019, Markus Elfring wrote:
> > Just wrapping the assignment into the macro call turned out to be easy.
>
> I am curious how your transformation approaches will evolve further.
>
>
> > But I haven't found a way to remove the now #ifdef :(
>
> The support for preprocessor functionality is limited by the semantic patch
> language so far.
> Would you like to try another SmPL script variant out?
>
> @replacement@
> constant text;
> expression value;
> identifier my_name;
> type driver_type;
> @@
> static
> driver_type
> my_name = {
> .driver = {
> - .name = text,
> - .of_match_table = value,
> - },
> + .name = text,
> + .of_match_table = of_match_ptr(value),
I guess that there is no guarantee that these are the only fields.
julia
> + },
> ...
> };
>
>
> Do you find the following test result acceptable finally?
>
>
> elfring@Sonne:~/Projekte/Linux/next-patched> spatch
> ~/Projekte/Coccinelle/Probe/Weigelt8.cocci sound/soc/codecs/pcm3060-i2c.c
> init_defs_builtins: /usr/local/bin/../lib/coccinelle/standard.h
> …
> @@ -45,9 +45,7 @@ MODULE_DEVICE_TABLE(of, pcm3060_of_match
> static struct i2c_driver pcm3060_i2c_driver = {
> .driver = {
> .name = "pcm3060",
> -#ifdef CONFIG_OF
> - .of_match_table = pcm3060_of_match,
> -#endif /* CONFIG_OF */
> + .of_match_table = of_match_ptr(pcm3060_of_match),
> },
> .id_table = pcm3060_i2c_id,
> .probe = pcm3060_i2c_probe,
>
>
> Regards,
> Markus
> _______________________________________________
> Cocci mailing list
> [email protected]
> https://systeme.lip6.fr/mailman/listinfo/cocci
>_______________________________________________
Cocci mailing list
[email protected]
https://systeme.lip6.fr/mailman/listinfo/cocci