[PATCH v2 1/8] Add basic Coccinelle transforms.
- From
brian m. carlson <sandals@crustytoothpaste.net>
- Date
- Jun 18, 2016, 22:14 UTC
- Message-ID
- <20160618221407.1046188-2-sandals@crustytoothpaste.net>
- In-Reply-To
- <20160618221407.1046188-1-sandals@crustytoothpaste.net>
Coccinelle (http://coccinelle.lip6.fr/) is a program which performs mechanical transformations on C programs using semantic patches. These semantic patches can be used to implement automatic refactoring and maintenance tasks.
Add a set of basic semantic patches to convert common patterns related to the struct object_id transformation, as well as a README.
Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net> --- contrib/examples/coccinelle/README | 2 + contrib/examples/coccinelle/object_id.cocci | 83 +++++++++++++++++++++++++++++ 2 files changed, 85 insertions(+) create mode 100644 contrib/examples/coccinelle/README create mode 100644 contrib/examples/coccinelle/object_id.cocci
diff --git a/contrib/examples/coccinelle/README b/contrib/examples/coccinelle/README new file mode 100644 index 00000000..9c2f8879 --- /dev/null +++ b/contrib/examples/coccinelle/README @@ -0,0 +1,2 @@ +This directory provides examples of Coccinelle (http://coccinelle.lip6.fr/) +semantic patches that might be useful to developers. diff --git a/contrib/examples/coccinelle/object_id.cocci b/contrib/examples/coccinelle/object_id.cocci new file mode 100644 index 00000000..0f068252 --- /dev/null +++ b/contrib/examples/coccinelle/object_id.cocci @@ -0,0 +1,83 @@ +@@ +expression E1; +@@ +- is_null_sha1(E1.hash) ++ is_null_oid(&E1) + +@@ +expression E1; +@@ +- is_null_sha1(E1->hash) ++ is_null_oid(E1) + +@@ +expression E1; +@@ +- sha1_to_hex(E1.hash) ++ oid_to_hex(&E1) + +@@ +expression E1; +@@ +- sha1_to_hex(E1->hash) ++ oid_to_hex(E1) + +@@ +expression E1; +@@ +- hashclr(E1.hash) ++ oidclr(&E1) + +@@ +expression E1; +@@ +- hashclr(E1->hash) ++ oidclr(E1) + +@@ +expression E1, E2; +@@ +- hashcmp(E1.hash, E2.hash) ++ oidcmp(&E1, &E2) + +@@ +expression E1, E2; +@@ +- hashcmp(E1->hash, E2->hash) ++ oidcmp(E1, E2) + +@@ +expression E1, E2; +@@ +- hashcmp(E1->hash, E2.hash) ++ oidcmp(E1, &E2) + +@@ +expression E1, E2; +@@ +- hashcmp(E1.hash, E2->hash) ++ oidcmp(&E1, E2) + +@@ +expression E1, E2; +@@ +- hashcpy(E1.hash, E2.hash) ++ oidcpy(&E1, &E2) + +@@ +expression E1, E2; +@@ +- hashcpy(E1->hash, E2->hash) ++ oidcpy(E1, E2) + +@@ +expression E1, E2; +@@ +- hashcpy(E1->hash, E2.hash) ++ oidcpy(E1, &E2) + +@@ +expression E1, E2; +@@ +- hashcpy(E1.hash, E2->hash) ++ oidcpy(&E1, E2)