WIP FPC-III support
[linux/fpc-iii.git] / scripts / coccinelle / misc / uninitialized_var.cocci
blob8fa845cefe11a1f524b892dc86678c41f053319c
1 // SPDX-License-Identifier: GPL-2.0-only
2 ///
3 /// Please, don't reintroduce uninitialized_var().
4 /// From Documentation/process/deprecated.rst:
5 ///  For any compiler warnings about uninitialized variables, just add
6 ///  an initializer. Using warning-silencing tricks is dangerous as it
7 ///  papers over real bugs (or can in the future), and suppresses unrelated
8 ///  compiler warnings (e.g. "unused variable"). If the compiler thinks it
9 ///  is uninitialized, either simply initialize the variable or make compiler
10 ///  changes. Keep in mind that in most cases, if an initialization is
11 ///  obviously redundant, the compiler's dead-store elimination pass will make
12 ///  sure there are no needless variable writes.
13 ///
14 // Confidence: High
15 // Copyright: (C) 2020 Denis Efremov ISPRAS
16 // Options: --no-includes --include-headers
19 virtual context
20 virtual report
21 virtual org
23 @r@
24 identifier var;
25 type T;
26 position p;
30 * T var =@p var;
32 * T var =@p *(&(var));
34 * var =@p var
36 * var =@p *(&(var))
39 @script:python depends on report@
40 p << r.p;
43 coccilib.report.print_report(p[0],
44   "WARNING this kind of initialization is deprecated (https://www.kernel.org/doc/html/latest/process/deprecated.html#uninitialized-var)")
46 @script:python depends on org@
47 p << r.p;
50 coccilib.org.print_todo(p[0],
51   "WARNING this kind of initialization is deprecated (https://www.kernel.org/doc/html/latest/process/deprecated.html#uninitialized-var)")