* [Linux-kernel-mentees] [PATCH] parsing_c: Add space for tokens after *
@ 2020-01-16 5:18 Jaskaran Singh
2020-01-16 9:09 ` Julia Lawall
2020-01-16 10:44 ` [Linux-kernel-mentees] [PATCH 0/2] cocci: " Jaskaran Singh
0 siblings, 2 replies; 6+ messages in thread
From: Jaskaran Singh @ 2020-01-16 5:18 UTC (permalink / raw)
To: cocci; +Cc: julia.lawall, Jaskaran Singh, linux-kernel-mentees
In certain cases, there is no space added after the Pointer type.
Examples of such cases are * const, * __attr and * const *.
In the Pointer case of pp_type_with_ident_rest and pp_type_left, if
the * is followed by anything within the type, add a space after the
printing.
Signed-off-by: Jaskaran Singh <jaskaransingh7654321@gmail.com>
---
parsing_c/pretty_print_c.ml | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/parsing_c/pretty_print_c.ml b/parsing_c/pretty_print_c.ml
index ccf8214d..a2e35588 100644
--- a/parsing_c/pretty_print_c.ml
+++ b/parsing_c/pretty_print_c.ml
@@ -806,6 +806,8 @@ and pp_string_format (e,ii) =
(* bug: pp_type_with_ident_rest None t; print_ident ident *)
pr_elem i;
iiqu +> List.iter pr_elem; (* le const est forcement apres le '*' *)
+ if iiqu <> [] || get_comments_after i <> []
+ then pr_space();
pp_type_with_ident_rest ident t attrs Ast_c.noattr;
(* ugly special case ... todo? maybe sufficient in practice *)
@@ -885,6 +887,8 @@ and pp_string_format (e,ii) =
| (Pointer t, [i]) ->
pr_elem i;
iiqu +> List.iter pr_elem; (* le const est forcement apres le '*' *)
+ if iiqu <> [] || get_comments_after i <> []
+ then pr_space();
pp_type_left t
| (Array (eopt, t), [i1;i2]) -> pp_type_left t
--
2.21.1
_______________________________________________
Linux-kernel-mentees mailing list
Linux-kernel-mentees@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/linux-kernel-mentees
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [Linux-kernel-mentees] [PATCH] parsing_c: Add space for tokens after *
2020-01-16 5:18 [Linux-kernel-mentees] [PATCH] parsing_c: Add space for tokens after * Jaskaran Singh
@ 2020-01-16 9:09 ` Julia Lawall
2020-01-16 10:44 ` [Linux-kernel-mentees] [PATCH 0/2] cocci: " Jaskaran Singh
1 sibling, 0 replies; 6+ messages in thread
From: Julia Lawall @ 2020-01-16 9:09 UTC (permalink / raw)
To: Jaskaran Singh; +Cc: linux-kernel-mentees, cocci
On Thu, 16 Jan 2020, Jaskaran Singh wrote:
> In certain cases, there is no space added after the Pointer type.
> Examples of such cases are * const, * __attr and * const *.
>
> In the Pointer case of pp_type_with_ident_rest and pp_type_left, if
> the * is followed by anything within the type, add a space after the
> printing.
Thank for the patch. Could you add in a test case as well?
thanks,
julia
>
> Signed-off-by: Jaskaran Singh <jaskaransingh7654321@gmail.com>
> ---
> parsing_c/pretty_print_c.ml | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/parsing_c/pretty_print_c.ml b/parsing_c/pretty_print_c.ml
> index ccf8214d..a2e35588 100644
> --- a/parsing_c/pretty_print_c.ml
> +++ b/parsing_c/pretty_print_c.ml
> @@ -806,6 +806,8 @@ and pp_string_format (e,ii) =
> (* bug: pp_type_with_ident_rest None t; print_ident ident *)
> pr_elem i;
> iiqu +> List.iter pr_elem; (* le const est forcement apres le '*' *)
> + if iiqu <> [] || get_comments_after i <> []
> + then pr_space();
> pp_type_with_ident_rest ident t attrs Ast_c.noattr;
>
> (* ugly special case ... todo? maybe sufficient in practice *)
> @@ -885,6 +887,8 @@ and pp_string_format (e,ii) =
> | (Pointer t, [i]) ->
> pr_elem i;
> iiqu +> List.iter pr_elem; (* le const est forcement apres le '*' *)
> + if iiqu <> [] || get_comments_after i <> []
> + then pr_space();
> pp_type_left t
>
> | (Array (eopt, t), [i1;i2]) -> pp_type_left t
> --
> 2.21.1
>
>
_______________________________________________
Linux-kernel-mentees mailing list
Linux-kernel-mentees@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/linux-kernel-mentees
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Linux-kernel-mentees] [PATCH 0/2] cocci: Add space for tokens after *
2020-01-16 5:18 [Linux-kernel-mentees] [PATCH] parsing_c: Add space for tokens after * Jaskaran Singh
2020-01-16 9:09 ` Julia Lawall
@ 2020-01-16 10:44 ` Jaskaran Singh
2020-01-16 10:44 ` [Linux-kernel-mentees] [PATCH 1/2] parsing_c: " Jaskaran Singh
2020-01-16 10:44 ` [Linux-kernel-mentees] [PATCH 2/2] tests: Add test case for * const * Jaskaran Singh
1 sibling, 2 replies; 6+ messages in thread
From: Jaskaran Singh @ 2020-01-16 10:44 UTC (permalink / raw)
To: cocci; +Cc: julia.lawall, linux-kernel-mentees
The Pointer cases in pp_type_with_ident_rest and pp_type_left of
pretty_print_c.ml sometimes do not add a necessary space, if there
exist tokens after the *.
Create changes necessary for adding this space and add a test case
for * const *.
parsing_c/pretty_print_c.ml | 4 ++++
tests/ptrconstptr.c | 3 +++
tests/ptrconstptr.cocci | 7 +++++++
tests/ptrconstptr.res | 3 +++
4 files changed, 17 insertions(+)
_______________________________________________
Linux-kernel-mentees mailing list
Linux-kernel-mentees@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/linux-kernel-mentees
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Linux-kernel-mentees] [PATCH 1/2] parsing_c: Add space for tokens after *
2020-01-16 10:44 ` [Linux-kernel-mentees] [PATCH 0/2] cocci: " Jaskaran Singh
@ 2020-01-16 10:44 ` Jaskaran Singh
2020-01-16 10:44 ` [Linux-kernel-mentees] [PATCH 2/2] tests: Add test case for * const * Jaskaran Singh
1 sibling, 0 replies; 6+ messages in thread
From: Jaskaran Singh @ 2020-01-16 10:44 UTC (permalink / raw)
To: cocci; +Cc: julia.lawall, Jaskaran Singh, linux-kernel-mentees
In certain cases, there is no space added after the Pointer type.
Examples of such cases are * const, * __attr and * const *.
In the Pointer case of pp_type_with_ident_rest and pp_type_left, if
the * is followed by anything within the type, add a space after the
printing.
Signed-off-by: Jaskaran Singh <jaskaransingh7654321@gmail.com>
---
parsing_c/pretty_print_c.ml | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/parsing_c/pretty_print_c.ml b/parsing_c/pretty_print_c.ml
index ccf8214d..a2e35588 100644
--- a/parsing_c/pretty_print_c.ml
+++ b/parsing_c/pretty_print_c.ml
@@ -806,6 +806,8 @@ and pp_string_format (e,ii) =
(* bug: pp_type_with_ident_rest None t; print_ident ident *)
pr_elem i;
iiqu +> List.iter pr_elem; (* le const est forcement apres le '*' *)
+ if iiqu <> [] || get_comments_after i <> []
+ then pr_space();
pp_type_with_ident_rest ident t attrs Ast_c.noattr;
(* ugly special case ... todo? maybe sufficient in practice *)
@@ -885,6 +887,8 @@ and pp_string_format (e,ii) =
| (Pointer t, [i]) ->
pr_elem i;
iiqu +> List.iter pr_elem; (* le const est forcement apres le '*' *)
+ if iiqu <> [] || get_comments_after i <> []
+ then pr_space();
pp_type_left t
| (Array (eopt, t), [i1;i2]) -> pp_type_left t
--
2.21.1
_______________________________________________
Linux-kernel-mentees mailing list
Linux-kernel-mentees@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/linux-kernel-mentees
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [Linux-kernel-mentees] [PATCH 2/2] tests: Add test case for * const *
2020-01-16 10:44 ` [Linux-kernel-mentees] [PATCH 0/2] cocci: " Jaskaran Singh
2020-01-16 10:44 ` [Linux-kernel-mentees] [PATCH 1/2] parsing_c: " Jaskaran Singh
@ 2020-01-16 10:44 ` Jaskaran Singh
2020-01-16 15:36 ` Julia Lawall
1 sibling, 1 reply; 6+ messages in thread
From: Jaskaran Singh @ 2020-01-16 10:44 UTC (permalink / raw)
To: cocci; +Cc: julia.lawall, Jaskaran Singh, linux-kernel-mentees
Previously, a space would not be added after the * const. Add
a test case for testing spacing with use of the type.
Signed-off-by: Jaskaran Singh <jaskaransingh7654321@gmail.com>
---
tests/ptrconstptr.c | 3 +++
tests/ptrconstptr.cocci | 7 +++++++
tests/ptrconstptr.res | 3 +++
3 files changed, 13 insertions(+)
create mode 100644 tests/ptrconstptr.c
create mode 100644 tests/ptrconstptr.cocci
create mode 100644 tests/ptrconstptr.res
diff --git a/tests/ptrconstptr.c b/tests/ptrconstptr.c
new file mode 100644
index 00000000..a2a3cf71
--- /dev/null
+++ b/tests/ptrconstptr.c
@@ -0,0 +1,3 @@
+void main() {
+ const char * const * x;
+}
diff --git a/tests/ptrconstptr.cocci b/tests/ptrconstptr.cocci
new file mode 100644
index 00000000..030bc024
--- /dev/null
+++ b/tests/ptrconstptr.cocci
@@ -0,0 +1,7 @@
+@@
+type t;
+@@
+void main() {
+- t x;
++ t y;
+}
diff --git a/tests/ptrconstptr.res b/tests/ptrconstptr.res
new file mode 100644
index 00000000..f5b2210c
--- /dev/null
+++ b/tests/ptrconstptr.res
@@ -0,0 +1,3 @@
+void main() {
+ const char *const *y;
+}
--
2.21.1
_______________________________________________
Linux-kernel-mentees mailing list
Linux-kernel-mentees@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/linux-kernel-mentees
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [Linux-kernel-mentees] [PATCH 2/2] tests: Add test case for * const *
2020-01-16 10:44 ` [Linux-kernel-mentees] [PATCH 2/2] tests: Add test case for * const * Jaskaran Singh
@ 2020-01-16 15:36 ` Julia Lawall
0 siblings, 0 replies; 6+ messages in thread
From: Julia Lawall @ 2020-01-16 15:36 UTC (permalink / raw)
To: Jaskaran Singh; +Cc: linux-kernel-mentees, cocci
On Thu, 16 Jan 2020, Jaskaran Singh wrote:
> Previously, a space would not be added after the * const. Add
> a test case for testing spacing with use of the type.
>
> Signed-off-by: Jaskaran Singh <jaskaransingh7654321@gmail.com>
Applied, thanks.
julia
> ---
> tests/ptrconstptr.c | 3 +++
> tests/ptrconstptr.cocci | 7 +++++++
> tests/ptrconstptr.res | 3 +++
> 3 files changed, 13 insertions(+)
> create mode 100644 tests/ptrconstptr.c
> create mode 100644 tests/ptrconstptr.cocci
> create mode 100644 tests/ptrconstptr.res
>
> diff --git a/tests/ptrconstptr.c b/tests/ptrconstptr.c
> new file mode 100644
> index 00000000..a2a3cf71
> --- /dev/null
> +++ b/tests/ptrconstptr.c
> @@ -0,0 +1,3 @@
> +void main() {
> + const char * const * x;
> +}
> diff --git a/tests/ptrconstptr.cocci b/tests/ptrconstptr.cocci
> new file mode 100644
> index 00000000..030bc024
> --- /dev/null
> +++ b/tests/ptrconstptr.cocci
> @@ -0,0 +1,7 @@
> +@@
> +type t;
> +@@
> +void main() {
> +- t x;
> ++ t y;
> +}
> diff --git a/tests/ptrconstptr.res b/tests/ptrconstptr.res
> new file mode 100644
> index 00000000..f5b2210c
> --- /dev/null
> +++ b/tests/ptrconstptr.res
> @@ -0,0 +1,3 @@
> +void main() {
> + const char *const *y;
> +}
> --
> 2.21.1
>
>
_______________________________________________
Linux-kernel-mentees mailing list
Linux-kernel-mentees@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/linux-kernel-mentees
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2020-01-16 15:36 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-01-16 5:18 [Linux-kernel-mentees] [PATCH] parsing_c: Add space for tokens after * Jaskaran Singh
2020-01-16 9:09 ` Julia Lawall
2020-01-16 10:44 ` [Linux-kernel-mentees] [PATCH 0/2] cocci: " Jaskaran Singh
2020-01-16 10:44 ` [Linux-kernel-mentees] [PATCH 1/2] parsing_c: " Jaskaran Singh
2020-01-16 10:44 ` [Linux-kernel-mentees] [PATCH 2/2] tests: Add test case for * const * Jaskaran Singh
2020-01-16 15:36 ` Julia Lawall
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).