>>  <+...
>> *struct structure_type structure_var = { ..., .element = allocation(...), 
>> ... };
>>  ...+>
> 
> Element should be an identifier.

I find it not so obvious that the metavariable type "field"
was inappropriate there. Would more explanations in the manual help, too?
https://github.com/coccinelle/coccinelle/blob/af8131522ee9aff575e4345f5068f4f138264cd6/docs/manual/cocci_syntax.tex#L153


I have tried the following small SmPL script

@show_designated_initialisers@
identifier allocation, element, structure_type, structure_var;
@@
 <+...
*struct structure_type structure_var = { ..., .element = allocation(...), ... };
 ...+>


on this


char* get_default_message(short selection)
{
 static char xyz[123];
 
 switch (selection)
 {
 case 1:
  strcpy(xyz, "Test");
 default:
  strcpy(xyz, "working");
 }
 return xyz;
}

static unsigned long my_counter = 0;

static struct my_string
{
 unsigned int length;
 char* text;
} message = { .text = get_default_message(1), .length = 123 };


source code example.


elfring@Sonne:~/Projekte/Coccinelle/janitor> spatch.opt -sp-file 
show_designated_initialisers1.cocci designated_initialiser1.c
init_defs_builtins: /usr/local/lib/coccinelle/standard.h
HANDLING: designated_initialiser1.c


Unfortunately, I do not see a generated patch there.
How should I improve my approach for the expected analysis result?

Regards,
Markus
_______________________________________________
Cocci mailing list
[email protected]
https://systeme.lip6.fr/mailman/listinfo/cocci

Reply via email to