[Linux-kernel-mentees] [PATCH v3 00/32] cocci: Add cast attributes to C and SmPL ASTs
Jaskaran Singh
jaskaransingh7654321 at gmail.com
Fri May 29 12:06:30 UTC 2020
This patch series aims to add cast attributes to the C and SmPL ASTs, and
match them in C source code. This is a continuation of the series "cocci:
Improve C parsing of attributes"[1].
Three test cases are included:
- detect_cast_attr: Test case to detect a parameter attribute.
- remove_cast_attr: Test case to remove a parameter attribute as per the
given SmPL.
- remove_cast_attr_allminus: Test case to replace a type in a cast and
checking if the attribute is removed as well.
Changes in v3:
--------------
Rebase as follows:
v3 of "cocci: Add Parameter attributes to SmPL"[2]
v3 of "cocci: Improve C parsing of attributes"[3]
gitlab master branch (ffb87d9d)
Changes in v2:
--------------
parsing_c: parser: Pass attribute list from type_name
- Warn about dropped attributes in typeof and sizeof productions
parsing_cocci: parser: Parse cast attributes
- Mention in commit message that cast attributes are matched anywhere
in a cast.
parsing_cocci: arity: Reflect Cast attributes
- Apply mcode2arity on attributes as well.
parsing_cocci: visitor_ast: Visit cast attributes
- Typo in commit message (AST0 -> AST).
parsing_c: pretty_print_c: Reflect Cast attributes
- Less space in front of [
parsing_c: ast_c: Add Cast attributes
- Switch places of expression and attributes in Cast type.
parsing_c: parser: Parse Cast attributes
- Switch places of expression and attributes in Cast type.
parsing_c: pretty_print_c: Reflect Cast attributes
- Switch places of expression and attributes in Cast type.
- Change printing order of cast elements.
parsing_c: type_annoter_c: Reflect Cast attributes
- Switch places of expression and attributes in Cast type.
parsing_c: visitor_c: Visit Cast attributes
- Switch places of expression and attributes in Cast type.
- Change visitor order of cast elements.
engine: cocci_vs_c: Match Cast attributes
- Switch places of expression and attributes in C AST Cast type.
ocaml: coccilib: Reflect Cast attributes
- Switch places of expression and attributes in C AST Cast type.
[1]https://www.mail-archive.com/cocci@systeme.lip6.fr/msg07133.html
[2]https://www.mail-archive.com/cocci@systeme.lip6.fr/msg07311.html
[3]https://www.mail-archive.com/cocci@systeme.lip6.fr/msg07439.html
Jaskaran Singh (32):
parsing_c: parser: Pass attribute list from type_name
parsing_cocci: ast0_cocci: Add cast attributes
parsing_cocci: parser: Parse cast attributes
parsing_cocci: visitor_ast0: Visit cast attributes
parsing_cocci: unparse_ast0: Reflect cast attributes
parsing_cocci: index: Reflect Cast attributes
parsing_cocci: iso_pattern: Reflect Cast attributes
parsing_cocci: type_infer: Reflect Cast attributes
parsing_cocci: arity: Reflect Cast attributes
parsing_cocci: check_meta: Reflect Cast attributes
parsing_cocci: compute_lines: Reflect Cast attributes
parsing_cocci: context_neg: Reflect Cast attributes
parsing_cocci: single_statement: Reflect Cast attributes
parsing_cocci: ast_cocci: Add cast attributes
parsing_cocci: visitor_ast: Visit cast attributes
parsing_cocci: pretty_print_cocci: Print cast attributes
parsing_cocci: ast0toast: Reflect Cast attributes
parsing_cocci: disjdistr: Reflect Cast attributes
parsing_cocci: unify_ast: Reflect Cast attributes
parsing_c: ast_c: Add Cast attributes
parsing_c: parser: Parse Cast attributes
parsing_c: pretty_print_c: Reflect Cast attributes
parsing_c: type_annoter_c: Reflect Cast attributes
parsing_c: unparse_cocci: Reflect Cast attributes
parsing_c: visitor_c: Visit Cast attributes
engine: check_exhaustive_pattern: Reflect Cast attributes
engine: cocci_vs_c: Match Cast attributes
ocaml: coccilib: Reflect Cast attributes
tools: spgen: Reflect Cast attrs
tests: Add test case to check cast attribute allminus
tests: Add test case to remove cast attributes
tests: Add test case to detect cast attributes
engine/check_exhaustive_pattern.ml | 2 +-
engine/cocci_vs_c.ml | 24 +++++++++++++++++-------
ocaml/coccilib.mli | 9 +++++----
parsing_c/ast_c.ml | 2 +-
parsing_c/ast_c.mli | 2 +-
parsing_c/parse_c.ml | 4 +++-
parsing_c/parser_c.mly | 27 ++++++++++++++++++---------
parsing_c/pretty_print_c.ml | 7 ++++---
parsing_c/type_annoter_c.ml | 4 ++--
parsing_c/unparse_cocci.ml | 6 ++++--
parsing_c/visitor_c.ml | 11 +++++++++--
parsing_cocci/arity.ml | 8 +++++---
parsing_cocci/ast0_cocci.ml | 4 ++--
parsing_cocci/ast0_cocci.mli | 4 ++--
parsing_cocci/ast0toast.ml | 5 +++--
parsing_cocci/ast_cocci.ml | 4 ++--
parsing_cocci/ast_cocci.mli | 4 ++--
parsing_cocci/check_meta.ml | 3 ++-
parsing_cocci/compute_lines.ml | 5 +++--
parsing_cocci/context_neg.ml | 2 +-
parsing_cocci/disjdistr.ml | 5 +++--
parsing_cocci/index.ml | 2 +-
parsing_cocci/iso_pattern.ml | 12 +++++++++---
parsing_cocci/parser_cocci_menhir.mly | 9 +++++----
parsing_cocci/pretty_print_cocci.ml | 4 +++-
parsing_cocci/single_statement.ml | 2 +-
parsing_cocci/type_infer.ml | 2 +-
parsing_cocci/unify_ast.ml | 6 ++++--
parsing_cocci/unparse_ast0.ml | 4 +++-
parsing_cocci/visitor_ast.ml | 10 ++++++----
parsing_cocci/visitor_ast0.ml | 6 ++++--
tests/detect_cast_attr.c | 10 ++++++++++
tests/detect_cast_attr.cocci | 11 +++++++++++
tests/detect_cast_attr.res | 10 ++++++++++
tests/remove_cast_attr.c | 10 ++++++++++
tests/remove_cast_attr.cocci | 10 ++++++++++
tests/remove_cast_attr.res | 10 ++++++++++
tests/remove_cast_attr_allminus.c | 10 ++++++++++
tests/remove_cast_attr_allminus.cocci | 9 +++++++++
tests/remove_cast_attr_allminus.res | 10 ++++++++++
tools/spgen/source/position_generator.ml | 4 ++--
41 files changed, 219 insertions(+), 74 deletions(-)
More information about the Linux-kernel-mentees
mailing list