git@vger.kernel.org list mirror (unofficial, one of many)
 help / color / mirror / code / Atom feed
blob 56530498d178b4df5602deeb8b09e87862a45d1a 629 bytes (raw)
name: contrib/coccinelle/unused.cocci 	 # note: path name is non-authoritative(*)

 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
 
// This rule finds sequences of "unused" declerations and uses of a
// variable, where "unused" is defined to include only calling the
// equivalent of alloc, init & free functions on the variable.
@@
type T;
identifier I;
constant INIT_MACRO =~ "^STRBUF_INIT$";
identifier MALLOC1 =~ "^x?[mc]alloc$";
identifier INIT_CALL1 =~ "^strbuf_init$";
identifier REL1 =~ "^strbuf_(release|reset)$";
@@

(
- T I;
|
- T I = { 0 };
|
- T I = INIT_MACRO;
|
- T I = MALLOC1(...);
)

<... when != \( I \| &I \)
(
- \( INIT_CALL1 \)( \( I \| &I \), ...);
|
- I = MALLOC1(...);
)
...>

- \( REL1 \)( \( &I \| I \) );
  ... when != \( I \| &I \)

debug log:

solving 56530498d17 ...
found 56530498d17 in https://80x24.org/mirrors/git.git

(*) Git path names are given by the tree(s) the blob belongs to.
    Blobs themselves have no identifier aside from the hash of its contents.^

Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

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 read-only IMAP folder(s) and NNTP newsgroup(s).