Re: coccinelle: adjustments for array.cocci?
From: Markus Elfring <hidden>
Date: 2019-11-16 16:33:40
This reduces duplication in the semantic patch, which is nice. I think
I tried something like that at the time, but found that it failed to
produce some of the cases in 921d49be86 ("use COPY_ARRAY for copying
arrays", 2019-06-15) for some reason.
I propose to integrate an other solution variant.
* How do you think about to delete questionable transformation rules
together with increasing the usage of nested disjunctions in this script
for the semantic patch language?
* Can a single transformation rule become sufficient for the discussed
change pattern?
@@
type T;
T* dst_ptr, src_ptr, ptr;
T[] dst_arr, src_arr;
expression n, x;
@@
(
-memcpy
+COPY_ARRAY
(
( dst_ptr
| dst_arr
)
,
( src_ptr
| src_arr
)
- , (n) * \( sizeof(T) \| sizeof( \( *(x) \| x[...] \) ) \)
+ , n
)
|
-memmove
+MOVE_ARRAY
(dst_ptr,
src_ptr
- , (n) * \( sizeof(* \( dst_ptr \| src_ptr \) ) \| sizeof(T) \)
+ , n
)
|
-ptr = xmalloc((n) * \( sizeof(*ptr) \| sizeof(T) \))
+ALLOC_ARRAY(ptr, n)
)
Would you like to clarify remaining challenges for pretty-printing
in such use cases?
Regards,
Markus