> Again, to understand the problem, I need the .cocci file, and preferably > the .c file as well. Preferably a small .c file that shows the problem.
Would you like to reproduce my issue with the following SmPL filter pattern on the source file "https://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/tree/init/calibrate.c?id=8595c539f0360477189eef91f6337ba44962f72d"? elfring@Sonne:~/Projekte/Coccinelle/lokal/demos/pass-through> cat list_pass-through_functions2.cocci @initialize:python@ import sys result = [] mark = ['"', '', '"'] delimiter = '|' def store_positions(fun, typ, pt_param, places, data_structure = ""): """Add source code positions to an internal list.""" for place in places: fields = [] fields.append(fun) mark[1] = typ fields.append(''.join(mark)) fields.append(pt_param) fields.append(data_structure) mark[1] = place.file.replace('"', '""') fields.append(''.join(mark)) fields.append(place.line) fields.append(str(int(place.column) + 1)) result.append(delimiter.join(fields)) @is_pass_through@ identifier pt_function, input; type data_type; position pos; @@ data_type@pos pt_function(...,data_type input,...) { <+... return input; ...+> } @is_pass_through_member_candidate@ identifier pt_function, input, tag; type data_type; position pos; @@ struct tag { ... data_type@pos (*pt_function)(...,data_type input,...); ... } @script:python collection1 depends on is_pass_through@ typ << is_pass_through.data_type; fun << is_pass_through.pt_function; pt_param << is_pass_through.input; places << is_pass_through.pos; @@ store_positions(fun, typ, pt_param, places) @script:python collection2 depends on is_pass_through_member_candidate@ tag << is_pass_through_member_candidate.tag; typ << is_pass_through_member_candidate.data_type; fun << is_pass_through_member_candidate.pt_function; pt_param << is_pass_through_member_candidate.input; places << is_pass_through_member_candidate.pos; @@ store_positions(fun, typ, pt_param, places, tag) @finalize:python@ if result: result.insert(0, delimiter.join(("function", '"data type"', "parameter", '"contained in"', '"source file"', "line", "column"))) print("\r\n".join(result)) else: sys.stderr.write("No result for this analysis!\n") Regards, Markus _______________________________________________ Cocci mailing list [email protected] https://systeme.lip6.fr/mailman/listinfo/cocci
