File: assignment_matching.cocci

package info (click to toggle)
coccinelle 1.0.8.deb-5
  • links: PTS, VCS
  • area: main
  • in suites: bullseye, sid
  • size: 26,148 kB
  • sloc: ml: 136,392; ansic: 23,594; sh: 2,189; makefile: 2,157; perl: 1,576; lisp: 840; python: 823; awk: 70; csh: 12
file content (38 lines) | stat: -rw-r--r-- 673 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
// This only matches cases where the assignment is a complete statement
@@
expression x;
@@

-x = f(3);
+matches_little();

// This matches also cases where the assignment is a subterm of another
// statement, such as a conditional.
@@
expression x;
@@

-x = g(3)
+matches_more()

// An isomorphism will let this also match cases where the type is not there
@@
expression x;
type T;
@@

-x = (T)h(3)
+matches_even_more()

// This matches a variable declaration too.  There are constraints on
// the transformation performed in this case, as it must ensure that the result
// will also be a variable declaration.
@@
expression x;
type T;
@@

 x = 
-(T)i(3)
+matches_most()