History

Merge tag 'coccinelle-for-5.20' of git://git.kernel.org/pub/scm/linux/kernel/git/jlawall/linux

Pull coccinelle semantic patch updates from Julia Lawall: - Update the semantic patches in the kernel that contain a URL for Coccinelle with a URL that is currently valid (from myself). - Add a semantic patch checking for unnecessary NULL tests on dev_{put, hold} functions (from Ziyang Xuan, followed bt a modification from myself). - Drop a semantic patch that replaces 0/1 by booleans, as this change was considered to be not worthwhile by some maintainers (from Steve Rostedt). - Extend an existing semantic patch with more checks for useless tests on variables addresses (from Jérémy Lefaure). * tag 'coccinelle-for-5.20' of git://git.kernel.org/pub/scm/linux/kernel/git/jlawall/linux: update Coccinelle URL coccinelle: free: add version constraint scripts/coccinelle/free: add NULL test before dev_{put, hold} functions coccinelle: Remove script that checks replacing 0/1 with false/true in functions returning bool coccinelle: Extend address test from ifaddr semantic patch to test expressions

Linus Torvalds committed 4 years ago

Commit cab9de72 parents 4e23eee f01701c45 files · +99 −105Browse files

Unified · Split

45 files
  1. scripts/coccinelle/api/alloc/zalloc-simple.cocci +1 −1
  2. scripts/coccinelle/api/atomic_as_refcounter.cocci +1 −1
  3. scripts/coccinelle/api/check_bq27xxx_data.cocci +1 −1
  4. scripts/coccinelle/api/d_find_alias.cocci +1 −1
  5. scripts/coccinelle/api/err_cast.cocci +1 −1
  6. scripts/coccinelle/api/kstrdup.cocci +1 −1
  7. scripts/coccinelle/api/memdup.cocci +1 −1
  8. scripts/coccinelle/api/memdup_user.cocci +1 −1
  9. scripts/coccinelle/api/pm_runtime.cocci +1 −1
  10. scripts/coccinelle/api/resource_size.cocci +1 −1
  11. scripts/coccinelle/free/clk_put.cocci +1 −1
  12. scripts/coccinelle/free/devm_free.cocci +1 −1
  13. scripts/coccinelle/free/ifnulldev_put.cocci +55 −0
  14. scripts/coccinelle/free/iounmap.cocci +1 −1
  15. scripts/coccinelle/free/kfree.cocci +1 −1
  16. scripts/coccinelle/free/kfreeaddr.cocci +1 −1
  17. scripts/coccinelle/free/pci_free_consistent.cocci +1 −1
  18. scripts/coccinelle/iterators/device_node_continue.cocci +1 −1
  19. scripts/coccinelle/iterators/for_each_child.cocci +1 −1
  20. scripts/coccinelle/iterators/itnull.cocci +1 −1
  21. scripts/coccinelle/iterators/list_entry_update.cocci +1 −1
  22. scripts/coccinelle/iterators/use_after_iter.cocci +1 −1
  23. scripts/coccinelle/locks/call_kern.cocci +1 −1
  24. scripts/coccinelle/locks/double_lock.cocci +1 −1
  25. scripts/coccinelle/locks/flags.cocci +1 −1
  26. scripts/coccinelle/locks/mini_lock.cocci +1 −1
  27. scripts/coccinelle/misc/boolreturn.cocci +0 −59
  28. scripts/coccinelle/misc/cstptr.cocci +1 −1
  29. scripts/coccinelle/misc/doubleinit.cocci +1 −1
  30. scripts/coccinelle/misc/ifcol.cocci +1 −1
  31. scripts/coccinelle/misc/newline_in_nl_msg.cocci +1 −1
  32. scripts/coccinelle/misc/noderef.cocci +1 −1
  33. scripts/coccinelle/misc/orplus.cocci +1 −1
  34. scripts/coccinelle/misc/returnvar.cocci +1 −1
  35. scripts/coccinelle/misc/semicolon.cocci +1 −1
  36. scripts/coccinelle/misc/test_addr.cocci +2 −4
  37. scripts/coccinelle/misc/warn.cocci +1 −1
  38. scripts/coccinelle/null/badzero.cocci +1 −1
  39. scripts/coccinelle/null/deref_null.cocci +1 −1
  40. scripts/coccinelle/null/eno.cocci +1 −1
  41. scripts/coccinelle/null/kmerr.cocci +1 −1
  42. scripts/coccinelle/tests/doublebitand.cocci +1 −1
  43. scripts/coccinelle/tests/doubletest.cocci +1 −1
  44. scripts/coccinelle/tests/odd_ptr_err.cocci +1 −1
  45. scripts/coccinelle/tests/unsigned_lesser_than_zero.cocci +1 −1
scripts/coccinelle/api/alloc/zalloc-simple.cocci+1−1
@@ -10,7 +10,7 @@ · 9 unmodified lines
10// Copyright: (C) 2009-2010 Julia Lawall, Nicolas Palix, DIKU.10// Copyright: (C) 2009-2010 Julia Lawall, Nicolas Palix, DIKU.
11// Copyright: (C) 2009-2010 Gilles Muller, INRIA/LiP6.11// Copyright: (C) 2009-2010 Gilles Muller, INRIA/LiP6.
12// Copyright: (C) 2017 Himanshu Jha12// Copyright: (C) 2017 Himanshu Jha
13// URL: http://coccinelle.lip6.fr/rules/kzalloc.html13// URL: https://coccinelle.gitlabpages.inria.fr/website
14// Options: --no-includes --include-headers14// Options: --no-includes --include-headers
15//15//
16// Keywords: kmalloc, kzalloc16// Keywords: kmalloc, kzalloc
scripts/coccinelle/api/atomic_as_refcounter.cocci+1−1
@@ -5,7 +5,7 @@ · 4 unmodified lines
5// Copyright (c) 2016-2017, Elena Reshetova, Intel Corporation5// Copyright (c) 2016-2017, Elena Reshetova, Intel Corporation
6//6//
7// Confidence: Moderate7// Confidence: Moderate
8// URL: http://coccinelle.lip6.fr/8// URL: https://coccinelle.gitlabpages.inria.fr/website
9// Options: --include-headers --very-quiet9// Options: --include-headers --very-quiet
10 10
11virtual report11virtual report
scripts/coccinelle/api/check_bq27xxx_data.cocci+1−1
@@ -6,7 +6,7 @@ · 5 unmodified lines
6///6///
7// Confidence: High7// Confidence: High
8// Copyright: (C) 2017 Julia Lawall, Inria/LIP6,8// Copyright: (C) 2017 Julia Lawall, Inria/LIP6,
9// URL: http://coccinelle.lip6.fr/9// URL: https://coccinelle.gitlabpages.inria.fr/website
10// Requires: 1.0.710// Requires: 1.0.7
11// Keywords: BQ27XXX_DATA11// Keywords: BQ27XXX_DATA
12 12
scripts/coccinelle/api/d_find_alias.cocci+1−1
@@ -4,7 +4,7 @@ · 3 unmodified lines
4// Keywords: d_find_alias, dput4// Keywords: d_find_alias, dput
5//5//
6// Confidence: Moderate6// Confidence: Moderate
7// URL: http://coccinelle.lip6.fr/7// URL: https://coccinelle.gitlabpages.inria.fr/website
8// Options: --include-headers8// Options: --include-headers
9 9
10virtual context10virtual context
scripts/coccinelle/api/err_cast.cocci+1−1
@@ -6,7 +6,7 @@ · 5 unmodified lines
6// Copyright: (C) 2009, 2010 Nicolas Palix, DIKU.6// Copyright: (C) 2009, 2010 Nicolas Palix, DIKU.
7// Copyright: (C) 2009, 2010 Julia Lawall, DIKU.7// Copyright: (C) 2009, 2010 Julia Lawall, DIKU.
8// Copyright: (C) 2009, 2010 Gilles Muller, INRIA/LiP6.8// Copyright: (C) 2009, 2010 Gilles Muller, INRIA/LiP6.
9// URL: http://coccinelle.lip6.fr/9// URL: https://coccinelle.gitlabpages.inria.fr/website
10// Options:10// Options:
11//11//
12// Keywords: ERR_PTR, PTR_ERR, ERR_CAST12// Keywords: ERR_PTR, PTR_ERR, ERR_CAST
scripts/coccinelle/api/kstrdup.cocci+1−1
@@ -5,7 +5,7 @@ · 4 unmodified lines
5// Copyright: (C) 2010-2012 Nicolas Palix.5// Copyright: (C) 2010-2012 Nicolas Palix.
6// Copyright: (C) 2010-2012 Julia Lawall, INRIA/LIP6.6// Copyright: (C) 2010-2012 Julia Lawall, INRIA/LIP6.
7// Copyright: (C) 2010-2012 Gilles Muller, INRIA/LiP6.7// Copyright: (C) 2010-2012 Gilles Muller, INRIA/LiP6.
8// URL: http://coccinelle.lip6.fr/8// URL: https://coccinelle.gitlabpages.inria.fr/website
9// Comments:9// Comments:
10// Options: --no-includes --include-headers10// Options: --no-includes --include-headers
11 11
scripts/coccinelle/api/memdup.cocci+1−1
@@ -5,7 +5,7 @@ · 4 unmodified lines
5// Copyright: (C) 2010-2012 Nicolas Palix.5// Copyright: (C) 2010-2012 Nicolas Palix.
6// Copyright: (C) 2010-2012 Julia Lawall, INRIA/LIP6.6// Copyright: (C) 2010-2012 Julia Lawall, INRIA/LIP6.
7// Copyright: (C) 2010-2012 Gilles Muller, INRIA/LiP6.7// Copyright: (C) 2010-2012 Gilles Muller, INRIA/LiP6.
8// URL: http://coccinelle.lip6.fr/8// URL: https://coccinelle.gitlabpages.inria.fr/website
9// Comments:9// Comments:
10// Options: --no-includes --include-headers10// Options: --no-includes --include-headers
11 11
scripts/coccinelle/api/memdup_user.cocci+1−1
@@ -6,7 +6,7 @@ · 5 unmodified lines
6// Copyright: (C) 2010-2012 Nicolas Palix.6// Copyright: (C) 2010-2012 Nicolas Palix.
7// Copyright: (C) 2010-2012 Julia Lawall, INRIA/LIP6.7// Copyright: (C) 2010-2012 Julia Lawall, INRIA/LIP6.
8// Copyright: (C) 2010-2012 Gilles Muller, INRIA/LiP6.8// Copyright: (C) 2010-2012 Gilles Muller, INRIA/LiP6.
9// URL: http://coccinelle.lip6.fr/9// URL: https://coccinelle.gitlabpages.inria.fr/website
10// Comments:10// Comments:
11// Options: --no-includes --include-headers11// Options: --no-includes --include-headers
12 12
scripts/coccinelle/api/pm_runtime.cocci+1−1
@@ -4,7 +4,7 @@ · 3 unmodified lines
4// Keywords: pm_runtime4// Keywords: pm_runtime
5// Confidence: Medium5// Confidence: Medium
6// Copyright (C) 2013 Texas Instruments Incorporated -6// Copyright (C) 2013 Texas Instruments Incorporated -
7// URL: http://coccinelle.lip6.fr/7// URL: https://coccinelle.gitlabpages.inria.fr/website
8// Options: --include-headers8// Options: --include-headers
9 9
10virtual patch10virtual patch
scripts/coccinelle/api/resource_size.cocci+1−1
@@ -7,7 +7,7 @@ · 6 unmodified lines
7// Copyright: (C) 2009, 2010 Nicolas Palix, DIKU.7// Copyright: (C) 2009, 2010 Nicolas Palix, DIKU.
8// Copyright: (C) 2009, 2010 Julia Lawall, DIKU.8// Copyright: (C) 2009, 2010 Julia Lawall, DIKU.
9// Copyright: (C) 2009, 2010 Gilles Muller, INRIA/LiP6.9// Copyright: (C) 2009, 2010 Gilles Muller, INRIA/LiP6.
10// URL: http://coccinelle.lip6.fr/10// URL: https://coccinelle.gitlabpages.inria.fr/website
11// Options:11// Options:
12//12//
13// Keywords: resource_size13// Keywords: resource_size
scripts/coccinelle/free/clk_put.cocci+1−1
@@ -8,7 +8,7 @@ · 7 unmodified lines
8// Confidence: Moderate8// Confidence: Moderate
9// Copyright: (C) 2012 Julia Lawall, INRIA/LIP6.9// Copyright: (C) 2012 Julia Lawall, INRIA/LIP6.
10// Copyright: (C) 2012 Gilles Muller, INRIA/LiP6.10// Copyright: (C) 2012 Gilles Muller, INRIA/LiP6.
11// URL: http://coccinelle.lip6.fr/11// URL: https://coccinelle.gitlabpages.inria.fr/website
12// Comments:12// Comments:
13// Options:13// Options:
14 14
scripts/coccinelle/free/devm_free.cocci+1−1
@@ -17,7 +17,7 @@ · 16 unmodified lines
17// Confidence: Moderate17// Confidence: Moderate
18// Copyright: (C) 2011 Julia Lawall, INRIA/LIP6.18// Copyright: (C) 2011 Julia Lawall, INRIA/LIP6.
19// Copyright: (C) 2011 Gilles Muller, INRIA/LiP6.19// Copyright: (C) 2011 Gilles Muller, INRIA/LiP6.
20// URL: http://coccinelle.lip6.fr/20// URL: https://coccinelle.gitlabpages.inria.fr/website
21// Comments:21// Comments:
22// Options: --no-includes --include-headers22// Options: --no-includes --include-headers
23 23
scripts/coccinelle/free/ifnulldev_put.cocci+55−0
@@ -0,0 +1,55 @@
1// SPDX-License-Identifier: GPL-2.0-only
2/// Since commit b37a46683739 ("netdevice: add the case if dev is NULL"),
3/// NULL check before dev_{put, hold} functions is not needed.
4///
5/// Based on ifnullfree.cocci by Fabian Frederick.
6///
7// Copyright: (C) 2022 Ziyang Xuan.
8// Comments: -
9// Options: --no-includes --include-headers
10// Version min: 5.15
11
12virtual patch
13virtual org
14virtual report
15virtual context
16
17@r2 depends on patch@
18expression E;
19@@
20- if (E != NULL)
21(
22 __dev_put(E);
23|
24 dev_put(E);
25|
26 dev_put_track(E, ...);
27|
28 __dev_hold(E);
29|
30 dev_hold(E);
31|
32 dev_hold_track(E, ...);
33)
34
35@r depends on context || report || org @
36expression E;
37position p;
38@@
39
40* if (E != NULL)
41* \(__dev_put@p\|dev_put@p\|dev_put_track@p\|__dev_hold@p\|dev_hold@p\|
42* dev_hold_track@p\)(E, ...);
43
44@script:python depends on org@
45p << r.p;
46@@
47
48cocci.print_main("NULL check before dev_{put, hold} functions is not needed", p)
49
50@script:python depends on report@
51p << r.p;
52@@
53
54msg = "WARNING: NULL check before dev_{put, hold} functions is not needed."
55coccilib.report.print_report(p[0], msg)
scripts/coccinelle/free/iounmap.cocci+1−1
@@ -8,7 +8,7 @@ · 7 unmodified lines
8// Confidence: Moderate8// Confidence: Moderate
9// Copyright: (C) 2012 Julia Lawall, INRIA/LIP6.9// Copyright: (C) 2012 Julia Lawall, INRIA/LIP6.
10// Copyright: (C) 2012 Gilles Muller, INRIA/LiP6.10// Copyright: (C) 2012 Gilles Muller, INRIA/LiP6.
11// URL: http://coccinelle.lip6.fr/11// URL: https://coccinelle.gitlabpages.inria.fr/website
12// Comments:12// Comments:
13// Options:13// Options:
14 14
scripts/coccinelle/free/kfree.cocci+1−1
@@ -9,7 +9,7 @@ · 8 unmodified lines
9// Copyright: (C) 2010-2012 Nicolas Palix.9// Copyright: (C) 2010-2012 Nicolas Palix.
10// Copyright: (C) 2010-2012 Julia Lawall, INRIA/LIP6.10// Copyright: (C) 2010-2012 Julia Lawall, INRIA/LIP6.
11// Copyright: (C) 2010-2012 Gilles Muller, INRIA/LiP6.11// Copyright: (C) 2010-2012 Gilles Muller, INRIA/LiP6.
12// URL: http://coccinelle.lip6.fr/12// URL: https://coccinelle.gitlabpages.inria.fr/website
13// Comments:13// Comments:
14// Options: --no-includes --include-headers14// Options: --no-includes --include-headers
15 15
scripts/coccinelle/free/kfreeaddr.cocci+1−1
@@ -3,7 +3,7 @@ · 2 unmodified lines
3///3///
4// Confidence: High4// Confidence: High
5// Copyright: (C) 2013 Julia Lawall, INRIA/LIP6.5// Copyright: (C) 2013 Julia Lawall, INRIA/LIP6.
6// URL: http://coccinelle.lip6.fr/6// URL: https://coccinelle.gitlabpages.inria.fr/website
7// Comments:7// Comments:
8// Options: --no-includes --include-headers8// Options: --no-includes --include-headers
9 9
scripts/coccinelle/free/pci_free_consistent.cocci+1−1
@@ -3,7 +3,7 @@ · 2 unmodified lines
3///3///
4// Confidence: Moderate4// Confidence: Moderate
5// Copyright: (C) 2013 Petr Strnad.5// Copyright: (C) 2013 Petr Strnad.
6// URL: http://coccinelle.lip6.fr/6// URL: https://coccinelle.gitlabpages.inria.fr/website
7// Keywords: pci_free_consistent, pci_alloc_consistent7// Keywords: pci_free_consistent, pci_alloc_consistent
8// Options: --no-includes --include-headers8// Options: --no-includes --include-headers
9 9
scripts/coccinelle/iterators/device_node_continue.cocci+1−1
@@ -4,7 +4,7 @@ · 3 unmodified lines
4///4///
5// Confidence: High5// Confidence: High
6// Copyright: (C) 2015 Julia Lawall, Inria.6// Copyright: (C) 2015 Julia Lawall, Inria.
7// URL: http://coccinelle.lip6.fr/7// URL: https://coccinelle.gitlabpages.inria.fr/website
8// Options: --no-includes --include-headers8// Options: --no-includes --include-headers
9// Requires: 1.0.49// Requires: 1.0.4
10// Keywords: for_each_child_of_node, etc.10// Keywords: for_each_child_of_node, etc.
scripts/coccinelle/iterators/for_each_child.cocci+1−1
@@ -5,7 +5,7 @@ · 4 unmodified lines
5///5///
6// Confidence: High6// Confidence: High
7// Copyright: (C) 2020 Sumera Priyadarsini7// Copyright: (C) 2020 Sumera Priyadarsini
8// URL: http://coccinelle.lip6.fr8// URL: https://coccinelle.gitlabpages.inria.fr/website
9// Options: --no-includes --include-headers9// Options: --no-includes --include-headers
10 10
11virtual patch11virtual patch
scripts/coccinelle/iterators/itnull.cocci+1−1
@@ -10,7 +10,7 @@ · 9 unmodified lines
10// Copyright: (C) 2010-2012 Nicolas Palix.10// Copyright: (C) 2010-2012 Nicolas Palix.
11// Copyright: (C) 2010-2012 Julia Lawall, INRIA/LIP6.11// Copyright: (C) 2010-2012 Julia Lawall, INRIA/LIP6.
12// Copyright: (C) 2010-2012 Gilles Muller, INRIA/LiP6.12// Copyright: (C) 2010-2012 Gilles Muller, INRIA/LiP6.
13// URL: http://coccinelle.lip6.fr/13// URL: https://coccinelle.gitlabpages.inria.fr/website
14// Comments:14// Comments:
15// Options: --no-includes --include-headers15// Options: --no-includes --include-headers
16 16
scripts/coccinelle/iterators/list_entry_update.cocci+1−1
@@ -8,7 +8,7 @@ · 7 unmodified lines
8// Copyright: (C) 2010 Nicolas Palix, DIKU.8// Copyright: (C) 2010 Nicolas Palix, DIKU.
9// Copyright: (C) 2010 Julia Lawall, DIKU.9// Copyright: (C) 2010 Julia Lawall, DIKU.
10// Copyright: (C) 2010 Gilles Muller, INRIA/LiP6.10// Copyright: (C) 2010 Gilles Muller, INRIA/LiP6.
11// URL: http://coccinelle.lip6.fr/11// URL: https://coccinelle.gitlabpages.inria.fr/website
12// Comments:12// Comments:
13// Options: --no-includes --include-headers13// Options: --no-includes --include-headers
14 14
scripts/coccinelle/iterators/use_after_iter.cocci+1−1
@@ -10,7 +10,7 @@ · 9 unmodified lines
10// Confidence: Moderate10// Confidence: Moderate
11// Copyright: (C) 2012 Julia Lawall, INRIA/LIP6.11// Copyright: (C) 2012 Julia Lawall, INRIA/LIP6.
12// Copyright: (C) 2012 Gilles Muller, INRIA/LIP6.12// Copyright: (C) 2012 Gilles Muller, INRIA/LIP6.
13// URL: http://coccinelle.lip6.fr/13// URL: https://coccinelle.gitlabpages.inria.fr/website
14// Comments:14// Comments:
15// Options: --no-includes --include-headers15// Options: --no-includes --include-headers
16 16
scripts/coccinelle/locks/call_kern.cocci+1−1
@@ -8,7 +8,7 @@ · 7 unmodified lines
8// Copyright: (C) 2012 Nicolas Palix.8// Copyright: (C) 2012 Nicolas Palix.
9// Copyright: (C) 2012 Julia Lawall, INRIA/LIP6.9// Copyright: (C) 2012 Julia Lawall, INRIA/LIP6.
10// Copyright: (C) 2012 Gilles Muller, INRIA/LiP6.10// Copyright: (C) 2012 Gilles Muller, INRIA/LiP6.
11// URL: http://coccinelle.lip6.fr/11// URL: https://coccinelle.gitlabpages.inria.fr/website
12// Comments:12// Comments:
13// Options: --no-includes --include-headers13// Options: --no-includes --include-headers
14 14
scripts/coccinelle/locks/double_lock.cocci+1−1
@@ -7,7 +7,7 @@ · 6 unmodified lines
7// Copyright: (C) 2010 Nicolas Palix, DIKU.7// Copyright: (C) 2010 Nicolas Palix, DIKU.
8// Copyright: (C) 2010 Julia Lawall, DIKU.8// Copyright: (C) 2010 Julia Lawall, DIKU.
9// Copyright: (C) 2010 Gilles Muller, INRIA/LiP6.9// Copyright: (C) 2010 Gilles Muller, INRIA/LiP6.
10// URL: http://coccinelle.lip6.fr/10// URL: https://coccinelle.gitlabpages.inria.fr/website
11// Comments:11// Comments:
12// Options: --no-includes --include-headers12// Options: --no-includes --include-headers
13 13
scripts/coccinelle/locks/flags.cocci+1−1
@@ -5,7 +5,7 @@ · 4 unmodified lines
5// Copyright: (C) 2010-2012 Nicolas Palix.5// Copyright: (C) 2010-2012 Nicolas Palix.
6// Copyright: (C) 2010-2012 Julia Lawall, INRIA/LIP6.6// Copyright: (C) 2010-2012 Julia Lawall, INRIA/LIP6.
7// Copyright: (C) 2010-2012 Gilles Muller, INRIA/LiP6.7// Copyright: (C) 2010-2012 Gilles Muller, INRIA/LiP6.
8// URL: http://coccinelle.lip6.fr/8// URL: https://coccinelle.gitlabpages.inria.fr/website
9// Comments:9// Comments:
10// Options: --no-includes --include-headers10// Options: --no-includes --include-headers
11 11
scripts/coccinelle/locks/mini_lock.cocci+1−1
@@ -10,7 +10,7 @@ · 9 unmodified lines
10// Copyright: (C) 2010-2012 Nicolas Palix.10// Copyright: (C) 2010-2012 Nicolas Palix.
11// Copyright: (C) 2010-2012 Julia Lawall, INRIA/LIP6.11// Copyright: (C) 2010-2012 Julia Lawall, INRIA/LIP6.
12// Copyright: (C) 2010-2012 Gilles Muller, INRIA/LiP6.12// Copyright: (C) 2010-2012 Gilles Muller, INRIA/LiP6.
13// URL: http://coccinelle.lip6.fr/13// URL: https://coccinelle.gitlabpages.inria.fr/website
14// Comments:14// Comments:
15// Options: --no-includes --include-headers15// Options: --no-includes --include-headers
16 16
scripts/coccinelle/misc/boolreturn.cocci+0−59
@@ -1,59 +0,0 @@
1// SPDX-License-Identifier: GPL-2.0
2/// Return statements in functions returning bool should use
3/// true/false instead of 1/0.
4//
5// Confidence: High
6// Options: --no-includes --include-headers
7
8virtual patch
9virtual report
10virtual context
11
12@r1 depends on patch@
13identifier fn;
14typedef bool;
15symbol false;
16symbol true;
17@@
18
19bool fn ( ... )
20{
21<...
22return
23(
24- 0
25+ false
26|
27- 1
28+ true
29)
30 ;
31...>
32}
33
34@r2 depends on report || context@
35identifier fn;
36position p;
37@@
38
39bool fn ( ... )
40{
41<...
42return
43(
44* 0@p
45|
46* 1@p
47)
48 ;
49...>
50}
51
52
53@script:python depends on report@
54p << r2.p;
55fn << r2.fn;
56@@
57
58msg = "WARNING: return of 0/1 in function '%s' with return type bool" % fn
59coccilib.report.print_report(p[0], msg)
scripts/coccinelle/misc/cstptr.cocci+1−1
@@ -5,7 +5,7 @@ · 4 unmodified lines
5// Confidence: High5// Confidence: High
6// Copyright: (C) 2012 Julia Lawall, INRIA/LIP6.6// Copyright: (C) 2012 Julia Lawall, INRIA/LIP6.
7// Copyright: (C) 2012 Gilles Muller, INRIA/LiP6.7// Copyright: (C) 2012 Gilles Muller, INRIA/LiP6.
8// URL: http://coccinelle.lip6.fr/8// URL: https://coccinelle.gitlabpages.inria.fr/website
9// Comments:9// Comments:
10// Options: --no-includes --include-headers10// Options: --no-includes --include-headers
11 11
scripts/coccinelle/misc/doubleinit.cocci+1−1
@@ -7,7 +7,7 @@ · 6 unmodified lines
7// Copyright: (C) 2010-2012 Nicolas Palix.7// Copyright: (C) 2010-2012 Nicolas Palix.
8// Copyright: (C) 2010-2012 Julia Lawall, INRIA/LIP6.8// Copyright: (C) 2010-2012 Julia Lawall, INRIA/LIP6.
9// Copyright: (C) 2010-2012 Gilles Muller, INRIA/LiP6.9// Copyright: (C) 2010-2012 Gilles Muller, INRIA/LiP6.
10// URL: http://coccinelle.lip6.fr/10// URL: https://coccinelle.gitlabpages.inria.fr/website
11// Comments: requires at least Coccinelle 0.2.4, lex or parse error otherwise11// Comments: requires at least Coccinelle 0.2.4, lex or parse error otherwise
12// Options: --no-includes --include-headers12// Options: --no-includes --include-headers
13 13
scripts/coccinelle/misc/ifcol.cocci+1−1
@@ -12,7 +12,7 @@ · 11 unmodified lines
12// Copyright: (C) 2010 Nicolas Palix, DIKU.12// Copyright: (C) 2010 Nicolas Palix, DIKU.
13// Copyright: (C) 2010 Julia Lawall, DIKU.13// Copyright: (C) 2010 Julia Lawall, DIKU.
14// Copyright: (C) 2010 Gilles Muller, INRIA/LiP6.14// Copyright: (C) 2010 Gilles Muller, INRIA/LiP6.
15// URL: http://coccinelle.lip6.fr/15// URL: https://coccinelle.gitlabpages.inria.fr/website
16// Comments:16// Comments:
17// Options: --no-includes --include-headers17// Options: --no-includes --include-headers
18 18
scripts/coccinelle/misc/newline_in_nl_msg.cocci+1−1
@@ -5,7 +5,7 @@ · 4 unmodified lines
5///5///
6// Confidence: Very High6// Confidence: Very High
7// Copyright: (C) 2020 Intel Corporation7// Copyright: (C) 2020 Intel Corporation
8// URL: http://coccinelle.lip6.fr/8// URL: https://coccinelle.gitlabpages.inria.fr/website
9// Options: --no-includes --include-headers9// Options: --no-includes --include-headers
10 10
11virtual context11virtual context
scripts/coccinelle/misc/noderef.cocci+1−1
@@ -5,7 +5,7 @@ · 4 unmodified lines
5// Confidence: High5// Confidence: High
6// Copyright: (C) 2012 Julia Lawall, INRIA/LIP6.6// Copyright: (C) 2012 Julia Lawall, INRIA/LIP6.
7// Copyright: (C) 2012 Gilles Muller, INRIA/LiP6.7// Copyright: (C) 2012 Gilles Muller, INRIA/LiP6.
8// URL: http://coccinelle.lip6.fr/8// URL: https://coccinelle.gitlabpages.inria.fr/website
9// Comments:9// Comments:
10// Options: --no-includes --include-headers10// Options: --no-includes --include-headers
11 11
scripts/coccinelle/misc/orplus.cocci+1−1
@@ -6,7 +6,7 @@ · 5 unmodified lines
6// Confidence: Moderate6// Confidence: Moderate
7// Copyright: (C) 2013 Julia Lawall, INRIA/LIP6.7// Copyright: (C) 2013 Julia Lawall, INRIA/LIP6.
8// Copyright: (C) 2013 Gilles Muller, INRIA/LIP6.8// Copyright: (C) 2013 Gilles Muller, INRIA/LIP6.
9// URL: http://coccinelle.lip6.fr/9// URL: https://coccinelle.gitlabpages.inria.fr/website
10// Comments:10// Comments:
11// Options: --no-includes --include-headers11// Options: --no-includes --include-headers
12 12
scripts/coccinelle/misc/returnvar.cocci+1−1
@@ -4,7 +4,7 @@ · 3 unmodified lines
4///4///
5// Confidence: Moderate5// Confidence: Moderate
6// Copyright: (C) 2012 Peter Senna Tschudin, INRIA/LIP6.6// Copyright: (C) 2012 Peter Senna Tschudin, INRIA/LIP6.
7// URL: http://coccinelle.lip6.fr/7// URL: https://coccinelle.gitlabpages.inria.fr/website
8// Comments: Comments on code can be deleted if near code that is removed.8// Comments: Comments on code can be deleted if near code that is removed.
9// "when strict" can be removed to get more hits, but adds false9// "when strict" can be removed to get more hits, but adds false
10// positives10// positives
scripts/coccinelle/misc/semicolon.cocci+1−1
@@ -4,7 +4,7 @@ · 3 unmodified lines
4///4///
5// Confidence: Moderate5// Confidence: Moderate
6// Copyright: (C) 2012 Peter Senna Tschudin, INRIA/LIP6.6// Copyright: (C) 2012 Peter Senna Tschudin, INRIA/LIP6.
7// URL: http://coccinelle.lip6.fr/7// URL: https://coccinelle.gitlabpages.inria.fr/website
8// Comments: Some false positives on empty default cases in switch statements.8// Comments: Some false positives on empty default cases in switch statements.
9// Options: --no-includes --include-headers9// Options: --no-includes --include-headers
10 10
scripts/coccinelle/misc/test_addr.coccirenamed from scripts/coccinelle/misc/ifaddr.cocci+2−4
@@ -4,7 +4,7 @@ · 3 unmodified lines
4// Confidence: High4// Confidence: High
5// Copyright: (C) 2012 Julia Lawall, INRIA/LIP6.5// Copyright: (C) 2012 Julia Lawall, INRIA/LIP6.
6// Copyright: (C) 2012 Gilles Muller, INRIA/LiP6.6// Copyright: (C) 2012 Gilles Muller, INRIA/LiP6.
7// URL: http://coccinelle.lip6.fr/7// URL: https://coccinelle.gitlabpages.inria.fr/website
8// Comments:8// Comments:
9// Options: --no-includes --include-headers9// Options: --no-includes --include-headers
10 10
@@ -14,12 +14,10 @@ virtual context · 3 unmodified lines
14 14
15@r@15@r@
16expression x;16expression x;
17statement S1,S2;
18position p;17position p;
19@@18@@
20 19
21*if@p (&x)20*\(&x@p == NULL \| &x@p != NULL\)
22 S1 else S2
23 21
24@script:python depends on org@22@script:python depends on org@
25p << r.p;23p << r.p;
scripts/coccinelle/misc/warn.cocci+1−1
@@ -4,7 +4,7 @@ · 3 unmodified lines
4// Confidence: High4// Confidence: High
5// Copyright: (C) 2012 Julia Lawall, INRIA/LIP6.5// Copyright: (C) 2012 Julia Lawall, INRIA/LIP6.
6// Copyright: (C) 2012 Gilles Muller, INRIA/LiP6.6// Copyright: (C) 2012 Gilles Muller, INRIA/LiP6.
7// URL: http://coccinelle.lip6.fr/7// URL: https://coccinelle.gitlabpages.inria.fr/website
8// Comments:8// Comments:
9// Options: --no-includes --include-headers9// Options: --no-includes --include-headers
10 10
scripts/coccinelle/null/badzero.cocci+1−1
@@ -10,7 +10,7 @@ · 9 unmodified lines
10// Confidence: High10// Confidence: High
11// Copyright: (C) 2012 Julia Lawall, INRIA/LIP6.11// Copyright: (C) 2012 Julia Lawall, INRIA/LIP6.
12// Copyright: (C) 2012 Gilles Muller, INRIA/LiP6.12// Copyright: (C) 2012 Gilles Muller, INRIA/LiP6.
13// URL: http://coccinelle.lip6.fr/13// URL: https://coccinelle.gitlabpages.inria.fr/website
14// Requires: 1.0.014// Requires: 1.0.0
15// Options:15// Options:
16 16
scripts/coccinelle/null/deref_null.cocci+1−1
@@ -7,7 +7,7 @@ · 6 unmodified lines
7// Copyright: (C) 2010 Nicolas Palix, DIKU.7// Copyright: (C) 2010 Nicolas Palix, DIKU.
8// Copyright: (C) 2010 Julia Lawall, DIKU.8// Copyright: (C) 2010 Julia Lawall, DIKU.
9// Copyright: (C) 2010 Gilles Muller, INRIA/LiP6.9// Copyright: (C) 2010 Gilles Muller, INRIA/LiP6.
10// URL: http://coccinelle.lip6.fr/10// URL: https://coccinelle.gitlabpages.inria.fr/website
11// Comments: -I ... -all_includes can give more complete results11// Comments: -I ... -all_includes can give more complete results
12// Options:12// Options:
13 13
scripts/coccinelle/null/eno.cocci+1−1
@@ -5,7 +5,7 @@ · 4 unmodified lines
5// Copyright: (C) 2010-2012 Nicolas Palix.5// Copyright: (C) 2010-2012 Nicolas Palix.
6// Copyright: (C) 2010-2012 Julia Lawall, INRIA/LIP6.6// Copyright: (C) 2010-2012 Julia Lawall, INRIA/LIP6.
7// Copyright: (C) 2010-2012 Gilles Muller, INRIA/LiP6.7// Copyright: (C) 2010-2012 Gilles Muller, INRIA/LiP6.
8// URL: http://coccinelle.lip6.fr/8// URL: https://coccinelle.gitlabpages.inria.fr/website
9// Comments:9// Comments:
10// Options: --no-includes --include-headers10// Options: --no-includes --include-headers
11 11
scripts/coccinelle/null/kmerr.cocci+1−1
@@ -9,7 +9,7 @@ · 8 unmodified lines
9// Copyright: (C) 2010 Nicolas Palix, DIKU.9// Copyright: (C) 2010 Nicolas Palix, DIKU.
10// Copyright: (C) 2010 Julia Lawall, DIKU.10// Copyright: (C) 2010 Julia Lawall, DIKU.
11// Copyright: (C) 2010 Gilles Muller, INRIA/LiP6.11// Copyright: (C) 2010 Gilles Muller, INRIA/LiP6.
12// URL: http://coccinelle.lip6.fr/12// URL: https://coccinelle.gitlabpages.inria.fr/website
13// Comments:13// Comments:
14// Options: --no-includes --include-headers14// Options: --no-includes --include-headers
15 15
scripts/coccinelle/tests/doublebitand.cocci+1−1
@@ -9,7 +9,7 @@ · 8 unmodified lines
9// Copyright: (C) 2010 Nicolas Palix, DIKU.9// Copyright: (C) 2010 Nicolas Palix, DIKU.
10// Copyright: (C) 2010 Julia Lawall, DIKU.10// Copyright: (C) 2010 Julia Lawall, DIKU.
11// Copyright: (C) 2010 Gilles Muller, INRIA/LiP6.11// Copyright: (C) 2010 Gilles Muller, INRIA/LiP6.
12// URL: http://coccinelle.lip6.fr/12// URL: https://coccinelle.gitlabpages.inria.fr/website
13// Comments:13// Comments:
14// Options: --no-includes --include-headers14// Options: --no-includes --include-headers
15 15
scripts/coccinelle/tests/doubletest.cocci+1−1
@@ -8,7 +8,7 @@ · 7 unmodified lines
8// Copyright: (C) 2010 Nicolas Palix, DIKU.8// Copyright: (C) 2010 Nicolas Palix, DIKU.
9// Copyright: (C) 2010 Julia Lawall, DIKU.9// Copyright: (C) 2010 Julia Lawall, DIKU.
10// Copyright: (C) 2010 Gilles Muller, INRIA/LiP6.10// Copyright: (C) 2010 Gilles Muller, INRIA/LiP6.
11// URL: http://coccinelle.lip6.fr/11// URL: https://coccinelle.gitlabpages.inria.fr/website
12// Comments:12// Comments:
13// Options: --no-includes --include-headers13// Options: --no-includes --include-headers
14 14
scripts/coccinelle/tests/odd_ptr_err.cocci+1−1
@@ -6,7 +6,7 @@ · 5 unmodified lines
6// Confidence: High6// Confidence: High
7// Copyright: (C) 2012, 2015 Julia Lawall, INRIA.7// Copyright: (C) 2012, 2015 Julia Lawall, INRIA.
8// Copyright: (C) 2012, 2015 Gilles Muller, INRIA.8// Copyright: (C) 2012, 2015 Gilles Muller, INRIA.
9// URL: http://coccinelle.lip6.fr/9// URL: https://coccinelle.gitlabpages.inria.fr/website
10// Options: --no-includes --include-headers10// Options: --no-includes --include-headers
11 11
12virtual patch12virtual patch
scripts/coccinelle/tests/unsigned_lesser_than_zero.cocci+1−1
@@ -13,7 +13,7 @@ · 12 unmodified lines
13///13///
14// Confidence: Average14// Confidence: Average
15// Copyright: (C) 2015 Andrzej Hajda, Samsung Electronics Co., Ltd.15// Copyright: (C) 2015 Andrzej Hajda, Samsung Electronics Co., Ltd.
16// URL: http://coccinelle.lip6.fr/16// URL: https://coccinelle.gitlabpages.inria.fr/website
17// Options: --all-includes17// Options: --all-includes
18 18
19virtual context19virtual context