* Re: [Cocci] [PATCH 42/43] tests: Add test case to match meta attribute
@ 2020-07-26 14:30 Markus Elfring
0 siblings, 0 replies; 3+ messages in thread
From: Markus Elfring @ 2020-07-26 14:30 UTC (permalink / raw)
To: Jaskaran Singh; +Cc: cocci
…
> +++ b/tests/metaattr.cocci
> @@ -0,0 +1,9 @@
> +@@
> +attribute name __attr__;
> +attribute a;
> +identifier b;
> +@@
> +
> +- int
> ++ char
> + b a = 1;
I have got understanding difficulties for this test SmPL script.
I interpret such SmPL code in the way that the metavariable “__attr__”
is declared while it is not used further.
Will the distinction between the metavariable types “attribute”
and “attribute name” trigger any extensions for the software documentation?
Regards,
Markus
_______________________________________________
Cocci mailing list
Cocci@systeme.lip6.fr
https://systeme.lip6.fr/mailman/listinfo/cocci
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [Cocci] [PATCH 42/43] tests: Add test case to match meta attribute
@ 2020-07-26 13:52 Markus Elfring
0 siblings, 0 replies; 3+ messages in thread
From: Markus Elfring @ 2020-07-26 13:52 UTC (permalink / raw)
To: Jaskaran Singh; +Cc: cocci
…
> +++ b/tests/metaattr.c
> @@ -0,0 +1,5 @@
> +int main() {
> + int b __attr__ = 1;
> + int b = 1;
> + return 0;
> +}
* Should such test code really work with a repeated definition of
the variable “b”?
* Would you like to test here if the identifier “b” should be handled
as an attribute for the variable “__attr__”?
Regards,
Markus
_______________________________________________
Cocci mailing list
Cocci@systeme.lip6.fr
https://systeme.lip6.fr/mailman/listinfo/cocci
^ permalink raw reply [flat|nested] 3+ messages in thread
* [Cocci] [PATCH 00/43] cocci: Add support for meta attributes to SmPL
@ 2020-07-26 12:50 Jaskaran Singh
2020-07-26 12:51 ` [Cocci] [PATCH 42/43] tests: Add test case to match meta attribute Jaskaran Singh
0 siblings, 1 reply; 3+ messages in thread
From: Jaskaran Singh @ 2020-07-26 12:50 UTC (permalink / raw)
To: cocci
This patch series aims to add support for meta attributes in SmPL.
Currently, only meta attributes in context and minus code are supported.
Changes include adding the MetaAttribute and MetaAttributeDecl constructors to
the SmPL ASTs and the MetaAttributeVal constructor to the C AST.
Two test cases are included for detecting and removing meta attributes.
Jaskaran Singh (43):
parsing_cocci: ast0_cocci: Add MetaAttribute & MetaAttributeDecl
parsing_cocci: parser: Parse meta attributes and metaattr decls
parsing_cocci: parse_cocci: Reflect MetaAttribute & MetaAttributeDecl
parsing_cocci: ast_cocci: Add MetaAttribute & MetaAttributeDecl
parsing_cocci: iso_pattern: Reflect MetaAttribute & MetaAttributeDecl
parsing_c: unparse_hrule: Reflect MetaAttribute & MetaAttributeDecl
parsing_cocci: pretty_print_cocci: Reflect MetaAttribute & MetaAttributeDecl
ocaml: coccilib: Reflect MetaAttribute & MetaAttributeDecl
ocaml: yes_prepare_ocamlcocci: Reflect MetaAttribute & MetaAttributeDecl
parsing_c: ast_c: Add MetaAttributeVal
parsing_c: unparse_hrule: Reflect MetaAttributeVal
engine: cocci_vs_c: Reflect MetaAttributeVal
engine: pattern_c: Reflect MetaAttributeVal
engine: pretty_print_engine: Add MetaAttributeVal
ocaml: coccilib: Reflect MetaAttributeVal
ocaml: ocamlcocci_aux: Reflect MetaAttributeVal
ocaml: run_ocamlcocci: Reflect MetaAttributeVal
python: pycocci_aux: Reflect MetaAttributeVal
parsing_cocci: visitor_ast0: Reflect MetaAttribute
parsing_cocci: check_meta: Reflect MetaAttribute
parsing_cocci: adjust_pragmas: Reflect MetaAttribute
parsing_cocci: context_neg: Reflect MetaAttribute
parsing_cocci: compute_lines: Reflect MetaAttribute
parsing_cocci: iso_pattern: Reflect MetaAttribute
parsing_cocci: function_prototypes: Reflect MetaAttribute
parsing_cocci: arity: Reflect MetaAttribute
parsing_cocci: unitary_ast0: Reflect MetaAttribute
parsing_cocci: unparse_ast0: Reflect MetaAttribute
parsing_cocci: ast0toast: Reflect MetaAttribute
parsing_cocci: visitor_ast: Reflect MetaAttribute
parsing_cocci: cleanup_rules: Reflect MetaAttribute
parsing_cocci: free_vars: Reflect MetaAttribute
parsing_cocci: get_constants: Reflect MetaAttribute
parsing_cocci: get_constants2: Reflect MetaAttribute
parsing_cocci: index: Reflect MetaAttribute
parsing_cocci: pretty_print_cocci: Reflect MetaAttribute
parsing_cocci: safe_for_multi_decls: Reflect MetaAttribute
parsing_cocci: unify_ast: Reflect MetaAttribute
parsing_c: unparse_cocci: Reflect MetaAttribute
engine: cocci_vs_c: Reflect MetaAttribute
tools: spgen: Reflect MetaAttribute
tests: Add test case to match meta attribute
tests: Add test case to remove a meta attribute
engine/cocci_vs_c.ml | 23 ++++++++++++++---
engine/pattern_c.ml | 6 ++++
engine/pretty_print_engine.ml | 1
ocaml/coccilib.ml | 1
ocaml/coccilib.mli | 7 +++++
ocaml/ocamlcocci_aux.ml | 2 +
ocaml/run_ocamlcocci.ml | 1
ocaml/yes_prepare_ocamlcocci.ml | 1
parsing_c/ast_c.ml | 1
parsing_c/ast_c.mli | 1
parsing_c/lib_parsing_c.ml | 3 ++
parsing_c/lib_parsing_c.mli | 3 ++
parsing_c/pretty_print_c.ml | 12 ++++++++
parsing_c/pretty_print_c.mli | 5 +++
parsing_c/unparse_cocci.ml | 6 ++++
parsing_c/unparse_hrule.ml | 5 +++
parsing_cocci/adjust_pragmas.ml | 3 ++
parsing_cocci/arity.ml | 29 ++++++++++++++-------
parsing_cocci/ast0_cocci.ml | 1
parsing_cocci/ast0_cocci.mli | 1
parsing_cocci/ast0toast.ml | 4 ++
parsing_cocci/ast_cocci.ml | 3 ++
parsing_cocci/ast_cocci.mli | 2 +
parsing_cocci/check_meta.ml | 27 ++++++++++++++-----
parsing_cocci/cleanup_rules.ml | 10 ++++++-
parsing_cocci/compute_lines.ml | 14 ++++++----
parsing_cocci/context_neg.ml | 18 ++++++++-----
parsing_cocci/data.ml | 1
parsing_cocci/data.mli | 1
parsing_cocci/free_vars.ml | 28 ++++++++++++++++++--
parsing_cocci/function_prototypes.ml | 10 ++++++-
parsing_cocci/get_constants.ml | 7 ++++-
parsing_cocci/get_constants2.ml | 9 +++---
parsing_cocci/index.ml | 3 +-
parsing_cocci/iso_pattern.ml | 46 +++++++++++++++++++++++++++++-----
parsing_cocci/lexer_cocci.mll | 12 ++++++++
parsing_cocci/parse_aux.ml | 4 ++
parsing_cocci/parse_cocci.ml | 11 ++++++--
parsing_cocci/parser_cocci_menhir.mly | 25 ++++++++++++------
parsing_cocci/pretty_print_cocci.ml | 3 ++
parsing_cocci/safe_for_multi_decls.ml | 1
parsing_cocci/unify_ast.ml | 2 +
parsing_cocci/unitary_ast0.ml | 8 +++++
parsing_cocci/unparse_ast0.ml | 1
parsing_cocci/visitor_ast.ml | 7 +++--
parsing_cocci/visitor_ast0.ml | 5 ++-
python/pycocci_aux.ml | 2 +
tests/metaattr.c | 5 +++
tests/metaattr.cocci | 9 ++++++
tests/metaattr.res | 5 +++
tests/remove_metaattr.c | 5 +++
tests/remove_metaattr.cocci | 9 ++++++
tests/remove_metaattr.res | 5 +++
tools/spgen/source/meta_variable.ml | 8 +++++
54 files changed, 357 insertions(+), 65 deletions(-)
_______________________________________________
Cocci mailing list
Cocci@systeme.lip6.fr
https://systeme.lip6.fr/mailman/listinfo/cocci
^ permalink raw reply [flat|nested] 3+ messages in thread
* [Cocci] [PATCH 42/43] tests: Add test case to match meta attribute
2020-07-26 12:50 [Cocci] [PATCH 00/43] cocci: Add support for meta attributes to SmPL Jaskaran Singh
@ 2020-07-26 12:51 ` Jaskaran Singh
0 siblings, 0 replies; 3+ messages in thread
From: Jaskaran Singh @ 2020-07-26 12:51 UTC (permalink / raw)
To: cocci
Meta attributes are added to SmPL. Add test case to match and detect a
meta attribute in C code.
Signed-off-by: Jaskaran Singh <jaskaran.singh@collabora.com>
---
tests/metaattr.c | 5 +++++
tests/metaattr.cocci | 9 +++++++++
tests/metaattr.res | 5 +++++
3 files changed, 19 insertions(+)
create mode 100644 tests/metaattr.c
create mode 100644 tests/metaattr.cocci
create mode 100644 tests/metaattr.res
diff --git a/tests/metaattr.c b/tests/metaattr.c
new file mode 100644
index 000000000..d3b091cd9
--- /dev/null
+++ b/tests/metaattr.c
@@ -0,0 +1,5 @@
+int main() {
+ int b __attr__ = 1;
+ int b = 1;
+ return 0;
+}
diff --git a/tests/metaattr.cocci b/tests/metaattr.cocci
new file mode 100644
index 000000000..a325ad06f
--- /dev/null
+++ b/tests/metaattr.cocci
@@ -0,0 +1,9 @@
+@@
+attribute name __attr__;
+attribute a;
+identifier b;
+@@
+
+- int
++ char
+ b a = 1;
diff --git a/tests/metaattr.res b/tests/metaattr.res
new file mode 100644
index 000000000..9cd2014f2
--- /dev/null
+++ b/tests/metaattr.res
@@ -0,0 +1,5 @@
+int main() {
+ char b __attr__ = 1;
+ int b = 1;
+ return 0;
+}
--
2.21.3
_______________________________________________
Cocci mailing list
Cocci@systeme.lip6.fr
https://systeme.lip6.fr/mailman/listinfo/cocci
^ permalink raw reply related [flat|nested] 3+ messages in thread
end of thread, other threads:[~2020-07-26 14:45 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-07-26 14:30 [Cocci] [PATCH 42/43] tests: Add test case to match meta attribute Markus Elfring
-- strict thread matches above, loose matches on Subject: below --
2020-07-26 13:52 Markus Elfring
2020-07-26 12:50 [Cocci] [PATCH 00/43] cocci: Add support for meta attributes to SmPL Jaskaran Singh
2020-07-26 12:51 ` [Cocci] [PATCH 42/43] tests: Add test case to match meta attribute Jaskaran Singh
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).