diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-05-28 13:39:07 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-05-28 13:39:07 -0400 |
commit | 905cec410a8b0ff3afb1845d6fe7215e0259b717 (patch) | |
tree | ffb5c7572737764c62fa82e12d6f49d0078d6941 /scripts/coccinelle | |
parent | da85d3426f52b3728671b1b1a67c6bed16915c0e (diff) | |
parent | 19a4b988955bc1d838a55c89d3d927f3d788a7dd (diff) |
Merge branch 'misc' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild
Pull misc kbuild changes from Michal Marek:
"The non-critical part of kbuild for 3.5 includes
- two new coccinelle checks
- fix for make deb-pkg to include generated headers in arch/*/include
I have more make-deb-pkg fixes in the backlog, but these will likely
have to wait for 3.6."
* 'misc' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild:
builddeb: include autogenerated header files
scripts/coccinelle: sizeof of pointer
scripts/coccinelle: address test is always true
Diffstat (limited to 'scripts/coccinelle')
-rw-r--r-- | scripts/coccinelle/misc/ifaddr.cocci | 35 | ||||
-rw-r--r-- | scripts/coccinelle/misc/noderef.cocci | 65 |
2 files changed, 100 insertions, 0 deletions
diff --git a/scripts/coccinelle/misc/ifaddr.cocci b/scripts/coccinelle/misc/ifaddr.cocci new file mode 100644 index 000000000000..3e4089a77000 --- /dev/null +++ b/scripts/coccinelle/misc/ifaddr.cocci | |||
@@ -0,0 +1,35 @@ | |||
1 | /// the address of a variable or field is non-zero is likely always to bo | ||
2 | /// non-zero | ||
3 | /// | ||
4 | // Confidence: High | ||
5 | // Copyright: (C) 2012 Julia Lawall, INRIA/LIP6. GPLv2. | ||
6 | // Copyright: (C) 2012 Gilles Muller, INRIA/LiP6. GPLv2. | ||
7 | // URL: http://coccinelle.lip6.fr/ | ||
8 | // Comments: | ||
9 | // Options: -no_includes -include_headers | ||
10 | |||
11 | virtual org | ||
12 | virtual report | ||
13 | virtual context | ||
14 | |||
15 | @r@ | ||
16 | expression x; | ||
17 | statement S1,S2; | ||
18 | position p; | ||
19 | @@ | ||
20 | |||
21 | *if@p (&x) | ||
22 | S1 else S2 | ||
23 | |||
24 | @script:python depends on org@ | ||
25 | p << r.p; | ||
26 | @@ | ||
27 | |||
28 | cocci.print_main("test of a variable/field address",p) | ||
29 | |||
30 | @script:python depends on report@ | ||
31 | p << r.p; | ||
32 | @@ | ||
33 | |||
34 | msg = "ERROR: test of a variable/field address" | ||
35 | coccilib.report.print_report(p[0],msg) | ||
diff --git a/scripts/coccinelle/misc/noderef.cocci b/scripts/coccinelle/misc/noderef.cocci new file mode 100644 index 000000000000..c1707214e602 --- /dev/null +++ b/scripts/coccinelle/misc/noderef.cocci | |||
@@ -0,0 +1,65 @@ | |||
1 | /// sizeof when applied to a pointer typed expression gives the size of | ||
2 | /// the pointer | ||
3 | /// | ||
4 | // Confidence: High | ||
5 | // Copyright: (C) 2012 Julia Lawall, INRIA/LIP6. GPLv2. | ||
6 | // Copyright: (C) 2012 Gilles Muller, INRIA/LiP6. GPLv2. | ||
7 | // URL: http://coccinelle.lip6.fr/ | ||
8 | // Comments: | ||
9 | // Options: -no_includes -include_headers | ||
10 | |||
11 | virtual org | ||
12 | virtual report | ||
13 | virtual context | ||
14 | virtual patch | ||
15 | |||
16 | @depends on patch@ | ||
17 | expression *x; | ||
18 | expression f; | ||
19 | type T; | ||
20 | @@ | ||
21 | |||
22 | ( | ||
23 | x = <+... sizeof( | ||
24 | - x | ||
25 | + *x | ||
26 | ) ...+> | ||
27 | | | ||
28 | f(...,(T)(x),...,sizeof( | ||
29 | - x | ||
30 | + *x | ||
31 | ),...) | ||
32 | | | ||
33 | f(...,sizeof(x),...,(T)( | ||
34 | - x | ||
35 | + *x | ||
36 | ),...) | ||
37 | ) | ||
38 | |||
39 | @r depends on !patch@ | ||
40 | expression *x; | ||
41 | expression f; | ||
42 | position p; | ||
43 | type T; | ||
44 | @@ | ||
45 | |||
46 | ( | ||
47 | *x = <+... sizeof@p(x) ...+> | ||
48 | | | ||
49 | *f(...,(T)(x),...,sizeof@p(x),...) | ||
50 | | | ||
51 | *f(...,sizeof@p(x),...,(T)(x),...) | ||
52 | ) | ||
53 | |||
54 | @script:python depends on org@ | ||
55 | p << r.p; | ||
56 | @@ | ||
57 | |||
58 | cocci.print_main("application of sizeof to pointer",p) | ||
59 | |||
60 | @script:python depends on report@ | ||
61 | p << r.p; | ||
62 | @@ | ||
63 | |||
64 | msg = "ERROR: application of sizeof to pointer" | ||
65 | coccilib.report.print_report(p[0],msg) | ||