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
Unified · Split
| @@ -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 Jha | 12 | // Copyright: (C) 2017 Himanshu Jha |
| 13 | // URL: http://coccinelle.lip6.fr/rules/kzalloc.html | 13 | // URL: https://coccinelle.gitlabpages.inria.fr/website |
| 14 | // Options: --no-includes --include-headers | 14 | // Options: --no-includes --include-headers |
| 15 | // | 15 | // |
| 16 | // Keywords: kmalloc, kzalloc | 16 | // Keywords: kmalloc, kzalloc |
| @@ -5,7 +5,7 @@ · 4 unmodified lines | |||
| 5 | // Copyright (c) 2016-2017, Elena Reshetova, Intel Corporation | 5 | // Copyright (c) 2016-2017, Elena Reshetova, Intel Corporation |
| 6 | // | 6 | // |
| 7 | // Confidence: Moderate | 7 | // Confidence: Moderate |
| 8 | // URL: http://coccinelle.lip6.fr/ | 8 | // URL: https://coccinelle.gitlabpages.inria.fr/website |
| 9 | // Options: --include-headers --very-quiet | 9 | // Options: --include-headers --very-quiet |
| 10 | 10 | ||
| 11 | virtual report | 11 | virtual report |
| @@ -6,7 +6,7 @@ · 5 unmodified lines | |||
| 6 | /// | 6 | /// |
| 7 | // Confidence: High | 7 | // 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.7 | 10 | // Requires: 1.0.7 |
| 11 | // Keywords: BQ27XXX_DATA | 11 | // Keywords: BQ27XXX_DATA |
| 12 | 12 | ||
| @@ -4,7 +4,7 @@ · 3 unmodified lines | |||
| 4 | // Keywords: d_find_alias, dput | 4 | // Keywords: d_find_alias, dput |
| 5 | // | 5 | // |
| 6 | // Confidence: Moderate | 6 | // Confidence: Moderate |
| 7 | // URL: http://coccinelle.lip6.fr/ | 7 | // URL: https://coccinelle.gitlabpages.inria.fr/website |
| 8 | // Options: --include-headers | 8 | // Options: --include-headers |
| 9 | 9 | ||
| 10 | virtual context | 10 | virtual context |
| @@ -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_CAST | 12 | // Keywords: ERR_PTR, PTR_ERR, ERR_CAST |
| @@ -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-headers | 10 | // Options: --no-includes --include-headers |
| 11 | 11 | ||
| @@ -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-headers | 10 | // Options: --no-includes --include-headers |
| 11 | 11 | ||
| @@ -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-headers | 11 | // Options: --no-includes --include-headers |
| 12 | 12 | ||
| @@ -4,7 +4,7 @@ · 3 unmodified lines | |||
| 4 | // Keywords: pm_runtime | 4 | // Keywords: pm_runtime |
| 5 | // Confidence: Medium | 5 | // 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-headers | 8 | // Options: --include-headers |
| 9 | 9 | ||
| 10 | virtual patch | 10 | virtual patch |
| @@ -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_size | 13 | // Keywords: resource_size |
| @@ -8,7 +8,7 @@ · 7 unmodified lines | |||
| 8 | // Confidence: Moderate | 8 | // 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 | ||
| @@ -17,7 +17,7 @@ · 16 unmodified lines | |||
| 17 | // Confidence: Moderate | 17 | // 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-headers | 22 | // Options: --no-includes --include-headers |
| 23 | 23 | ||
| @@ -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 | |||
| 12 | virtual patch | ||
| 13 | virtual org | ||
| 14 | virtual report | ||
| 15 | virtual context | ||
| 16 | |||
| 17 | @r2 depends on patch@ | ||
| 18 | expression 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 @ | ||
| 36 | expression E; | ||
| 37 | position 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@ | ||
| 45 | p << r.p; | ||
| 46 | @@ | ||
| 47 | |||
| 48 | cocci.print_main("NULL check before dev_{put, hold} functions is not needed", p) | ||
| 49 | |||
| 50 | @script:python depends on report@ | ||
| 51 | p << r.p; | ||
| 52 | @@ | ||
| 53 | |||
| 54 | msg = "WARNING: NULL check before dev_{put, hold} functions is not needed." | ||
| 55 | coccilib.report.print_report(p[0], msg) | ||
| @@ -8,7 +8,7 @@ · 7 unmodified lines | |||
| 8 | // Confidence: Moderate | 8 | // 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 | ||
| @@ -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-headers | 14 | // Options: --no-includes --include-headers |
| 15 | 15 | ||
| @@ -3,7 +3,7 @@ · 2 unmodified lines | |||
| 3 | /// | 3 | /// |
| 4 | // Confidence: High | 4 | // 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-headers | 8 | // Options: --no-includes --include-headers |
| 9 | 9 | ||
| @@ -3,7 +3,7 @@ · 2 unmodified lines | |||
| 3 | /// | 3 | /// |
| 4 | // Confidence: Moderate | 4 | // 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_consistent | 7 | // Keywords: pci_free_consistent, pci_alloc_consistent |
| 8 | // Options: --no-includes --include-headers | 8 | // Options: --no-includes --include-headers |
| 9 | 9 | ||
| @@ -4,7 +4,7 @@ · 3 unmodified lines | |||
| 4 | /// | 4 | /// |
| 5 | // Confidence: High | 5 | // 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-headers | 8 | // Options: --no-includes --include-headers |
| 9 | // Requires: 1.0.4 | 9 | // Requires: 1.0.4 |
| 10 | // Keywords: for_each_child_of_node, etc. | 10 | // Keywords: for_each_child_of_node, etc. |
| @@ -5,7 +5,7 @@ · 4 unmodified lines | |||
| 5 | /// | 5 | /// |
| 6 | // Confidence: High | 6 | // Confidence: High |
| 7 | // Copyright: (C) 2020 Sumera Priyadarsini | 7 | // Copyright: (C) 2020 Sumera Priyadarsini |
| 8 | // URL: http://coccinelle.lip6.fr | 8 | // URL: https://coccinelle.gitlabpages.inria.fr/website |
| 9 | // Options: --no-includes --include-headers | 9 | // Options: --no-includes --include-headers |
| 10 | 10 | ||
| 11 | virtual patch | 11 | virtual patch |
| @@ -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-headers | 15 | // Options: --no-includes --include-headers |
| 16 | 16 | ||
| @@ -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-headers | 13 | // Options: --no-includes --include-headers |
| 14 | 14 | ||
| @@ -10,7 +10,7 @@ · 9 unmodified lines | |||
| 10 | // Confidence: Moderate | 10 | // 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-headers | 15 | // Options: --no-includes --include-headers |
| 16 | 16 | ||
| @@ -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-headers | 13 | // Options: --no-includes --include-headers |
| 14 | 14 | ||
| @@ -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-headers | 12 | // Options: --no-includes --include-headers |
| 13 | 13 | ||
| @@ -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-headers | 10 | // Options: --no-includes --include-headers |
| 11 | 11 | ||
| @@ -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-headers | 15 | // Options: --no-includes --include-headers |
| 16 | 16 | ||
| @@ -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 | |||
| 8 | virtual patch | ||
| 9 | virtual report | ||
| 10 | virtual context | ||
| 11 | |||
| 12 | @r1 depends on patch@ | ||
| 13 | identifier fn; | ||
| 14 | typedef bool; | ||
| 15 | symbol false; | ||
| 16 | symbol true; | ||
| 17 | @@ | ||
| 18 | |||
| 19 | bool fn ( ... ) | ||
| 20 | { | ||
| 21 | <... | ||
| 22 | return | ||
| 23 | ( | ||
| 24 | - 0 | ||
| 25 | + false | ||
| 26 | | | ||
| 27 | - 1 | ||
| 28 | + true | ||
| 29 | ) | ||
| 30 | ; | ||
| 31 | ...> | ||
| 32 | } | ||
| 33 | |||
| 34 | @r2 depends on report || context@ | ||
| 35 | identifier fn; | ||
| 36 | position p; | ||
| 37 | @@ | ||
| 38 | |||
| 39 | bool fn ( ... ) | ||
| 40 | { | ||
| 41 | <... | ||
| 42 | return | ||
| 43 | ( | ||
| 44 | * 0@p | ||
| 45 | | | ||
| 46 | * 1@p | ||
| 47 | ) | ||
| 48 | ; | ||
| 49 | ...> | ||
| 50 | } | ||
| 51 | |||
| 52 | |||
| 53 | @script:python depends on report@ | ||
| 54 | p << r2.p; | ||
| 55 | fn << r2.fn; | ||
| 56 | @@ | ||
| 57 | |||
| 58 | msg = "WARNING: return of 0/1 in function '%s' with return type bool" % fn | ||
| 59 | coccilib.report.print_report(p[0], msg) | ||
| @@ -5,7 +5,7 @@ · 4 unmodified lines | |||
| 5 | // Confidence: High | 5 | // 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-headers | 10 | // Options: --no-includes --include-headers |
| 11 | 11 | ||
| @@ -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 otherwise | 11 | // Comments: requires at least Coccinelle 0.2.4, lex or parse error otherwise |
| 12 | // Options: --no-includes --include-headers | 12 | // Options: --no-includes --include-headers |
| 13 | 13 | ||
| @@ -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-headers | 17 | // Options: --no-includes --include-headers |
| 18 | 18 | ||
| @@ -5,7 +5,7 @@ · 4 unmodified lines | |||
| 5 | /// | 5 | /// |
| 6 | // Confidence: Very High | 6 | // Confidence: Very High |
| 7 | // Copyright: (C) 2020 Intel Corporation | 7 | // Copyright: (C) 2020 Intel Corporation |
| 8 | // URL: http://coccinelle.lip6.fr/ | 8 | // URL: https://coccinelle.gitlabpages.inria.fr/website |
| 9 | // Options: --no-includes --include-headers | 9 | // Options: --no-includes --include-headers |
| 10 | 10 | ||
| 11 | virtual context | 11 | virtual context |
| @@ -5,7 +5,7 @@ · 4 unmodified lines | |||
| 5 | // Confidence: High | 5 | // 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-headers | 10 | // Options: --no-includes --include-headers |
| 11 | 11 | ||
| @@ -6,7 +6,7 @@ · 5 unmodified lines | |||
| 6 | // Confidence: Moderate | 6 | // 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-headers | 11 | // Options: --no-includes --include-headers |
| 12 | 12 | ||
| @@ -4,7 +4,7 @@ · 3 unmodified lines | |||
| 4 | /// | 4 | /// |
| 5 | // Confidence: Moderate | 5 | // 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 false | 9 | // "when strict" can be removed to get more hits, but adds false |
| 10 | // positives | 10 | // positives |
| @@ -4,7 +4,7 @@ · 3 unmodified lines | |||
| 4 | /// | 4 | /// |
| 5 | // Confidence: Moderate | 5 | // 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-headers | 9 | // Options: --no-includes --include-headers |
| 10 | 10 | ||
| @@ -4,7 +4,7 @@ · 3 unmodified lines | |||
| 4 | // Confidence: High | 4 | // 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-headers | 9 | // Options: --no-includes --include-headers |
| 10 | 10 | ||
| @@ -14,12 +14,10 @@ virtual context · 3 unmodified lines | |||
| 14 | 14 | ||
| 15 | @r@ | 15 | @r@ |
| 16 | expression x; | 16 | expression x; |
| 17 | statement S1,S2; | ||
| 18 | position p; | 17 | position 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@ |
| 25 | p << r.p; | 23 | p << r.p; |
| @@ -4,7 +4,7 @@ · 3 unmodified lines | |||
| 4 | // Confidence: High | 4 | // 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-headers | 9 | // Options: --no-includes --include-headers |
| 10 | 10 | ||
| @@ -10,7 +10,7 @@ · 9 unmodified lines | |||
| 10 | // Confidence: High | 10 | // 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.0 | 14 | // Requires: 1.0.0 |
| 15 | // Options: | 15 | // Options: |
| 16 | 16 | ||
| @@ -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 results | 11 | // Comments: -I ... -all_includes can give more complete results |
| 12 | // Options: | 12 | // Options: |
| 13 | 13 | ||
| @@ -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-headers | 10 | // Options: --no-includes --include-headers |
| 11 | 11 | ||
| @@ -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-headers | 14 | // Options: --no-includes --include-headers |
| 15 | 15 | ||
| @@ -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-headers | 14 | // Options: --no-includes --include-headers |
| 15 | 15 | ||
| @@ -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-headers | 13 | // Options: --no-includes --include-headers |
| 14 | 14 | ||
| @@ -6,7 +6,7 @@ · 5 unmodified lines | |||
| 6 | // Confidence: High | 6 | // 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-headers | 10 | // Options: --no-includes --include-headers |
| 11 | 11 | ||
| 12 | virtual patch | 12 | virtual patch |
| @@ -13,7 +13,7 @@ · 12 unmodified lines | |||
| 13 | /// | 13 | /// |
| 14 | // Confidence: Average | 14 | // 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-includes | 17 | // Options: --all-includes |
| 18 | 18 | ||
| 19 | virtual context | 19 | virtual context |