release: ChangeLog and ReleaseNotes for 0.4.8.5
[tor.git] / scripts / coccinelle / debugmm.cocci
blobdbd308df3300a093a3614d5b2dba61359a3248de
1 // Look for use of expressions with side-effects inside of debug logs.
2 //
3 // This script detects expressions like ++E, --E, E++, and E-- inside of
4 // calls to log_debug().
5 //
6 // The log_debug() macro exits early if debug logging is not enabled,
7 // potentially causing problems if its arguments have side-effects.
9 @@
10 expression E;
12 *log_debug(... , <+...  --E ...+>, ... );
16 expression E;
18 *log_debug(... , <+...  ++E ...+>, ... );
21 expression E;
23 *log_debug(... , <+...  E-- ...+>, ... );
27 expression E;
29 *log_debug(... , <+...  E++ ...+>, ... );