Pull coccinelle updates from Michal Marek: "The misc branch is reserved for Coccinelle this time: - 'report' is the default mode - MAINTAINERS update for Coccinelle - documentation udate - use new option format for spatch(1) - J=<n> variable to mimic make -j for coccicheck - check for missing pci_free_consistent() calls There are some patches for rpm-pkg and deb-pkg waiting for the 3.12-rc1 merge window" * 'misc' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild: Coccinelle: Update information about the minimal version required Coccinelle: Update the options used to the new option scheme scripts: Coccinelle script for pci_free_consistent() Coccinelle: Update the documentation Coccinelle: Update section of MAINTAINERS coccicheck: span checks across CPUs scripts/coccinelle: check for field address argument to kfree Coccinelle: Update the Coccinelle section of MAINTAINERS Coccinelle: Make 'report' the default mode
Showing the changes to scripts (35 of 37 files). Show all
Unified · Split
| @@ -1,17 +1,31 @@ | |||
| 1 | #!/bin/bash | 1 | #!/bin/bash |
| 2 | 2 | ||
| 3 | # | ||
| 4 | # This script requires at least spatch | ||
| 5 | # version 1.0.0-rc11. | ||
| 6 | # | ||
| 7 | |||
| 3 | SPATCH="`which ${SPATCH:=spatch}`" | 8 | SPATCH="`which ${SPATCH:=spatch}`" |
| 4 | 9 | ||
| 10 | trap kill_running SIGTERM SIGINT | ||
| 11 | declare -a SPATCH_PID | ||
| 12 | |||
| 5 | # The verbosity may be set by the environmental parameter V= | 13 | # The verbosity may be set by the environmental parameter V= |
| 6 | # as for example with 'make V=1 coccicheck' | 14 | # as for example with 'make V=1 coccicheck' |
| 7 | 15 | ||
| 8 | if [ -n "$V" -a "$V" != "0" ]; then | 16 | if [ -n "$V" -a "$V" != "0" ]; then |
| 9 | VERBOSE=1 | 17 | VERBOSE="$V" |
| 10 | else | 18 | else |
| 11 | VERBOSE=0 | 19 | VERBOSE=0 |
| 12 | fi | 20 | fi |
| 13 | 21 | ||
| 14 | FLAGS="$SPFLAGS -very_quiet" | 22 | if [ -z "$J" ]; then |
| 23 | NPROC=$(getconf _NPROCESSORS_ONLN) | ||
| 24 | else | ||
| 25 | NPROC="$J" | ||
| 26 | fi | ||
| 27 | |||
| 28 | FLAGS="$SPFLAGS --very-quiet" | ||
| 15 | 29 | ||
| 16 | # spatch only allows include directories with the syntax "-I include" | 30 | # spatch only allows include directories with the syntax "-I include" |
| 17 | # while gcc also allows "-Iinclude" and "-include include" | 31 | # while gcc also allows "-Iinclude" and "-include include" |
| @@ -27,14 +41,14 @@ if [ "$C" = "1" -o "$C" = "2" ]; then · 9 unmodified lines | |||
| 27 | else | 41 | else |
| 28 | ONLINE=0 | 42 | ONLINE=0 |
| 29 | if [ "$KBUILD_EXTMOD" = "" ] ; then | 43 | if [ "$KBUILD_EXTMOD" = "" ] ; then |
| 30 | OPTIONS="-dir $srctree $COCCIINCLUDE" | 44 | OPTIONS="--dir $srctree $COCCIINCLUDE" |
| 31 | else | 45 | else |
| 32 | OPTIONS="-dir $KBUILD_EXTMOD $COCCIINCLUDE" | 46 | OPTIONS="--dir $KBUILD_EXTMOD $COCCIINCLUDE" |
| 33 | fi | 47 | fi |
| 34 | fi | 48 | fi |
| 35 | 49 | ||
| 36 | if [ "$KBUILD_EXTMOD" != "" ] ; then | 50 | if [ "$KBUILD_EXTMOD" != "" ] ; then |
| 37 | OPTIONS="-patch $srctree $OPTIONS" | 51 | OPTIONS="--patch $srctree $OPTIONS" |
| 38 | fi | 52 | fi |
| 39 | 53 | ||
| 40 | if [ ! -x "$SPATCH" ]; then | 54 | if [ ! -x "$SPATCH" ]; then |
| @@ -44,13 +58,21 @@ fi · 3 unmodified lines | |||
| 44 | 58 | ||
| 45 | if [ "$MODE" = "" ] ; then | 59 | if [ "$MODE" = "" ] ; then |
| 46 | if [ "$ONLINE" = "0" ] ; then | 60 | if [ "$ONLINE" = "0" ] ; then |
| 47 | echo 'You have not explicitly specified the mode to use. Using default "chain" mode.' | 61 | echo 'You have not explicitly specified the mode to use. Using default "report" mode.' |
| 48 | echo 'All available modes will be tried (in that order): patch, report, context, org' | 62 | echo 'Available modes are the following: patch, report, context, org' |
| 49 | echo 'You can specify the mode with "make coccicheck MODE=<mode>"' | 63 | echo 'You can specify the mode with "make coccicheck MODE=<mode>"' |
| 64 | echo 'Note however that some modes are not implemented by some semantic patches.' | ||
| 65 | fi | ||
| 66 | MODE="report" | ||
| 67 | fi | ||
| 68 | |||
| 69 | if [ "$MODE" = "chain" ] ; then | ||
| 70 | if [ "$ONLINE" = "0" ] ; then | ||
| 71 | echo 'You have selected the "chain" mode.' | ||
| 72 | echo 'All available modes will be tried (in that order): patch, report, context, org' | ||
| 50 | fi | 73 | fi |
| 51 | MODE="chain" | ||
| 52 | elif [ "$MODE" = "report" -o "$MODE" = "org" ] ; then | 74 | elif [ "$MODE" = "report" -o "$MODE" = "org" ] ; then |
| 53 | FLAGS="$FLAGS -no_show_diff" | 75 | FLAGS="$FLAGS --no-show-diff" |
| 54 | fi | 76 | fi |
| 55 | 77 | ||
| 56 | if [ "$ONLINE" = "0" ] ; then | 78 | if [ "$ONLINE" = "0" ] ; then |
| @@ -61,19 +83,35 @@ if [ "$ONLINE" = "0" ] ; then · 4 unmodified lines | |||
| 61 | fi | 83 | fi |
| 62 | 84 | ||
| 63 | run_cmd() { | 85 | run_cmd() { |
| 86 | local i | ||
| 64 | if [ $VERBOSE -ne 0 ] ; then | 87 | if [ $VERBOSE -ne 0 ] ; then |
| 65 | echo "Running: $@" | 88 | echo "Running ($NPROC in parallel): $@" |
| 66 | fi | 89 | fi |
| 67 | eval $@ | 90 | for i in $(seq 0 $(( NPROC - 1)) ); do |
| 91 | eval "$@ --max $NPROC --index $i &" | ||
| 92 | SPATCH_PID[$i]=$! | ||
| 93 | if [ $VERBOSE -eq 2 ] ; then | ||
| 94 | echo "${SPATCH_PID[$i]} running" | ||
| 95 | fi | ||
| 96 | done | ||
| 97 | wait | ||
| 68 | } | 98 | } |
| 69 | 99 | ||
| 100 | kill_running() { | ||
| 101 | for i in $(seq $(( NPROC - 1 )) ); do | ||
| 102 | if [ $VERBOSE -eq 2 ] ; then | ||
| 103 | echo "Killing ${SPATCH_PID[$i]}" | ||
| 104 | fi | ||
| 105 | kill ${SPATCH_PID[$i]} 2>/dev/null | ||
| 106 | done | ||
| 107 | } | ||
| 70 | 108 | ||
| 71 | coccinelle () { | 109 | coccinelle () { |
| 72 | COCCI="$1" | 110 | COCCI="$1" |
| 73 | 111 | ||
| 74 | OPT=`grep "Option" $COCCI | cut -d':' -f2` | 112 | OPT=`grep "Option" $COCCI | cut -d':' -f2` |
| 75 | 113 | ||
| 76 | # The option '-parse_cocci' can be used to syntactically check the SmPL files. | 114 | # The option '--parse-cocci' can be used to syntactically check the SmPL files. |
| 77 | # | 115 | # |
| 78 | # $SPATCH -D $MODE $FLAGS -parse_cocci $COCCI $OPT > /dev/null | 116 | # $SPATCH -D $MODE $FLAGS -parse_cocci $COCCI $OPT > /dev/null |
| 79 | 117 | ||
| @@ -114,20 +152,20 @@ coccinelle () { · 34 unmodified lines | |||
| 114 | 152 | ||
| 115 | if [ "$MODE" = "chain" ] ; then | 153 | if [ "$MODE" = "chain" ] ; then |
| 116 | run_cmd $SPATCH -D patch \ | 154 | run_cmd $SPATCH -D patch \ |
| 117 | $FLAGS -sp_file $COCCI $OPT $OPTIONS || \ | 155 | $FLAGS --cocci-file $COCCI $OPT $OPTIONS || \ |
| 118 | run_cmd $SPATCH -D report \ | 156 | run_cmd $SPATCH -D report \ |
| 119 | $FLAGS -sp_file $COCCI $OPT $OPTIONS -no_show_diff || \ | 157 | $FLAGS --cocci-file $COCCI $OPT $OPTIONS --no-show-diff || \ |
| 120 | run_cmd $SPATCH -D context \ | 158 | run_cmd $SPATCH -D context \ |
| 121 | $FLAGS -sp_file $COCCI $OPT $OPTIONS || \ | 159 | $FLAGS --cocci-file $COCCI $OPT $OPTIONS || \ |
| 122 | run_cmd $SPATCH -D org \ | 160 | run_cmd $SPATCH -D org \ |
| 123 | $FLAGS -sp_file $COCCI $OPT $OPTIONS -no_show_diff || exit 1 | 161 | $FLAGS --cocci-file $COCCI $OPT $OPTIONS --no-show-diff || exit 1 |
| 124 | elif [ "$MODE" = "rep+ctxt" ] ; then | 162 | elif [ "$MODE" = "rep+ctxt" ] ; then |
| 125 | run_cmd $SPATCH -D report \ | 163 | run_cmd $SPATCH -D report \ |
| 126 | $FLAGS -sp_file $COCCI $OPT $OPTIONS -no_show_diff && \ | 164 | $FLAGS --cocci-file $COCCI $OPT $OPTIONS --no-show-diff && \ |
| 127 | run_cmd $SPATCH -D context \ | 165 | run_cmd $SPATCH -D context \ |
| 128 | $FLAGS -sp_file $COCCI $OPT $OPTIONS || exit 1 | 166 | $FLAGS --cocci-file $COCCI $OPT $OPTIONS || exit 1 |
| 129 | else | 167 | else |
| 130 | run_cmd $SPATCH -D $MODE $FLAGS -sp_file $COCCI $OPT $OPTIONS || exit 1 | 168 | run_cmd $SPATCH -D $MODE $FLAGS --cocci-file $COCCI $OPT $OPTIONS || exit 1 |
| 131 | fi | 169 | fi |
| 132 | 170 | ||
| 133 | } | 171 | } |
| @@ -5,7 +5,7 @@ · 4 unmodified lines | |||
| 5 | // Confidence: High | 5 | // Confidence: High |
| 6 | // Copyright: 2009,2010 Nicolas Palix, DIKU. GPLv2. | 6 | // Copyright: 2009,2010 Nicolas Palix, DIKU. GPLv2. |
| 7 | // URL: http://coccinelle.lip6.fr/ | 7 | // URL: http://coccinelle.lip6.fr/ |
| 8 | // Options: -no_includes -include_headers | 8 | // Options: --no-includes --include-headers |
| 9 | // | 9 | // |
| 10 | // Keywords: kmalloc, kzalloc, kcalloc | 10 | // Keywords: kmalloc, kzalloc, kcalloc |
| 11 | // Version min: < 2.6.12 kmalloc | 11 | // Version min: < 2.6.12 kmalloc |
| @@ -9,7 +9,7 @@ · 8 unmodified lines | |||
| 9 | // Copyright: (C) 2009-2010 Julia Lawall, Nicolas Palix, DIKU. GPLv2. | 9 | // Copyright: (C) 2009-2010 Julia Lawall, Nicolas Palix, DIKU. GPLv2. |
| 10 | // Copyright: (C) 2009-2010 Gilles Muller, INRIA/LiP6. GPLv2. | 10 | // Copyright: (C) 2009-2010 Gilles Muller, INRIA/LiP6. GPLv2. |
| 11 | // URL: http://coccinelle.lip6.fr/rules/kzalloc.html | 11 | // URL: http://coccinelle.lip6.fr/rules/kzalloc.html |
| 12 | // Options: -no_includes -include_headers | 12 | // Options: --no-includes --include-headers |
| 13 | // | 13 | // |
| 14 | // Keywords: kmalloc, kzalloc | 14 | // Keywords: kmalloc, kzalloc |
| 15 | // Version min: < 2.6.12 kmalloc | 15 | // Version min: < 2.6.12 kmalloc |
| @@ -4,7 +4,7 @@ · 3 unmodified lines | |||
| 4 | // | 4 | // |
| 5 | // Confidence: Moderate | 5 | // Confidence: Moderate |
| 6 | // URL: http://coccinelle.lip6.fr/ | 6 | // URL: http://coccinelle.lip6.fr/ |
| 7 | // Options: -include_headers | 7 | // Options: --include-headers |
| 8 | 8 | ||
| 9 | virtual context | 9 | virtual context |
| 10 | virtual org | 10 | virtual org |
| @@ -10,7 +10,7 @@ · 9 unmodified lines | |||
| 10 | // Copyright: (C) 2011 Gilles Muller, INRIA/LiP6. GPLv2. | 10 | // Copyright: (C) 2011 Gilles Muller, INRIA/LiP6. GPLv2. |
| 11 | // URL: http://coccinelle.lip6.fr/ | 11 | // URL: http://coccinelle.lip6.fr/ |
| 12 | // Comments: | 12 | // Comments: |
| 13 | // Options: -no_includes -include_headers | 13 | // Options: --no-includes --include-headers |
| 14 | 14 | ||
| 15 | virtual patch | 15 | virtual patch |
| 16 | virtual org | 16 | virtual org |
| @@ -6,7 +6,7 @@ · 5 unmodified lines | |||
| 6 | // Copyright: (C) 2010-2012 Gilles Muller, INRIA/LiP6. GPLv2. | 6 | // Copyright: (C) 2010-2012 Gilles Muller, INRIA/LiP6. GPLv2. |
| 7 | // URL: http://coccinelle.lip6.fr/ | 7 | // URL: http://coccinelle.lip6.fr/ |
| 8 | // Comments: | 8 | // Comments: |
| 9 | // Options: -no_includes -include_headers | 9 | // Options: --no-includes --include-headers |
| 10 | 10 | ||
| 11 | virtual patch | 11 | virtual patch |
| 12 | virtual context | 12 | virtual context |
| @@ -6,7 +6,7 @@ · 5 unmodified lines | |||
| 6 | // Copyright: (C) 2010-2012 Gilles Muller, INRIA/LiP6. GPLv2. | 6 | // Copyright: (C) 2010-2012 Gilles Muller, INRIA/LiP6. GPLv2. |
| 7 | // URL: http://coccinelle.lip6.fr/ | 7 | // URL: http://coccinelle.lip6.fr/ |
| 8 | // Comments: | 8 | // Comments: |
| 9 | // Options: -no_includes -include_headers | 9 | // Options: --no-includes --include-headers |
| 10 | 10 | ||
| 11 | virtual patch | 11 | virtual patch |
| 12 | virtual context | 12 | virtual context |
| @@ -7,7 +7,7 @@ · 6 unmodified lines | |||
| 7 | // Copyright: (C) 2010-2012 Gilles Muller, INRIA/LiP6. GPLv2. | 7 | // Copyright: (C) 2010-2012 Gilles Muller, INRIA/LiP6. GPLv2. |
| 8 | // URL: http://coccinelle.lip6.fr/ | 8 | // URL: http://coccinelle.lip6.fr/ |
| 9 | // Comments: | 9 | // Comments: |
| 10 | // Options: -no_includes -include_headers | 10 | // Options: --no-includes --include-headers |
| 11 | 11 | ||
| 12 | virtual patch | 12 | virtual patch |
| 13 | virtual context | 13 | virtual context |
| @@ -5,7 +5,7 @@ · 4 unmodified lines | |||
| 5 | // Copyright: (C) 2012 Julia Lawall, INRIA/LIP6. GPLv2. | 5 | // Copyright: (C) 2012 Julia Lawall, INRIA/LIP6. GPLv2. |
| 6 | // Copyright: (C) 2012 Gilles Muller, INRIA/LiP6. GPLv2. | 6 | // Copyright: (C) 2012 Gilles Muller, INRIA/LiP6. GPLv2. |
| 7 | // URL: http://coccinelle.lip6.fr/ | 7 | // URL: http://coccinelle.lip6.fr/ |
| 8 | // Options: -no_includes -include_headers | 8 | // Options: --no-includes --include-headers |
| 9 | // | 9 | // |
| 10 | // Keywords: ERR_PTR, PTR_ERR, PTR_RET | 10 | // Keywords: ERR_PTR, PTR_ERR, PTR_RET |
| 11 | // Version min: 2.6.39 | 11 | // Version min: 2.6.39 |
| @@ -4,7 +4,7 @@ · 3 unmodified lines | |||
| 4 | /// | 4 | /// |
| 5 | // Confidence: High | 5 | // Confidence: High |
| 6 | // Comments: | 6 | // Comments: |
| 7 | // Options: -no_includes -include_headers | 7 | // Options: --no-includes --include-headers |
| 8 | 8 | ||
| 9 | virtual patch | 9 | virtual patch |
| 10 | virtual report | 10 | virtual report |
| @@ -18,7 +18,7 @@ · 17 unmodified lines | |||
| 18 | // Copyright: (C) 2011 Gilles Muller, INRIA/LiP6. GPLv2. | 18 | // Copyright: (C) 2011 Gilles Muller, INRIA/LiP6. GPLv2. |
| 19 | // URL: http://coccinelle.lip6.fr/ | 19 | // URL: http://coccinelle.lip6.fr/ |
| 20 | // Comments: | 20 | // Comments: |
| 21 | // Options: -no_includes -include_headers | 21 | // Options: --no-includes --include-headers |
| 22 | 22 | ||
| 23 | virtual org | 23 | virtual org |
| 24 | virtual report | 24 | virtual report |
| @@ -10,7 +10,7 @@ · 9 unmodified lines | |||
| 10 | // Copyright: (C) 2010-2012 Gilles Muller, INRIA/LiP6. GPLv2. | 10 | // Copyright: (C) 2010-2012 Gilles Muller, INRIA/LiP6. GPLv2. |
| 11 | // URL: http://coccinelle.lip6.fr/ | 11 | // URL: http://coccinelle.lip6.fr/ |
| 12 | // Comments: | 12 | // Comments: |
| 13 | // Options: -no_includes -include_headers | 13 | // Options: --no-includes --include-headers |
| 14 | 14 | ||
| 15 | virtual org | 15 | virtual org |
| 16 | virtual report | 16 | virtual report |
| @@ -0,0 +1,32 @@ | |||
| 1 | /// Free of a structure field | ||
| 2 | /// | ||
| 3 | // Confidence: High | ||
| 4 | // Copyright: (C) 2013 Julia Lawall, INRIA/LIP6. GPLv2. | ||
| 5 | // URL: http://coccinelle.lip6.fr/ | ||
| 6 | // Comments: | ||
| 7 | // Options: --no-includes --include-headers | ||
| 8 | |||
| 9 | virtual org | ||
| 10 | virtual report | ||
| 11 | virtual context | ||
| 12 | |||
| 13 | @r depends on context || report || org @ | ||
| 14 | expression e; | ||
| 15 | identifier f; | ||
| 16 | position p; | ||
| 17 | @@ | ||
| 18 | |||
| 19 | * kfree@p(&e->f) | ||
| 20 | |||
| 21 | @script:python depends on org@ | ||
| 22 | p << r.p; | ||
| 23 | @@ | ||
| 24 | |||
| 25 | cocci.print_main("kfree",p) | ||
| 26 | |||
| 27 | @script:python depends on report@ | ||
| 28 | p << r.p; | ||
| 29 | @@ | ||
| 30 | |||
| 31 | msg = "ERROR: kfree of structure field" | ||
| 32 | coccilib.report.print_report(p[0],msg) | ||
| @@ -0,0 +1,52 @@ | |||
| 1 | /// Find missing pci_free_consistent for every pci_alloc_consistent. | ||
| 2 | /// | ||
| 3 | // Confidence: Moderate | ||
| 4 | // Copyright: (C) 2013 Petr Strnad. GPLv2. | ||
| 5 | // URL: http://coccinelle.lip6.fr/ | ||
| 6 | // Keywords: pci_free_consistent, pci_alloc_consistent | ||
| 7 | // Options: --no-includes --include-headers | ||
| 8 | |||
| 9 | virtual report | ||
| 10 | virtual org | ||
| 11 | |||
| 12 | @search@ | ||
| 13 | local idexpression id; | ||
| 14 | expression x,y,z,e; | ||
| 15 | position p1,p2; | ||
| 16 | type T; | ||
| 17 | @@ | ||
| 18 | |||
| 19 | id = pci_alloc_consistent@p1(x,y,&z) | ||
| 20 | ... when != e = id | ||
| 21 | if (id == NULL || ...) { ... return ...; } | ||
| 22 | ... when != pci_free_consistent(x,y,id,z) | ||
| 23 | when != if (id) { ... pci_free_consistent(x,y,id,z) ... } | ||
| 24 | when != if (y) { ... pci_free_consistent(x,y,id,z) ... } | ||
| 25 | when != e = (T)id | ||
| 26 | when exists | ||
| 27 | ( | ||
| 28 | return 0; | ||
| 29 | | | ||
| 30 | return 1; | ||
| 31 | | | ||
| 32 | return id; | ||
| 33 | | | ||
| 34 | return@p2 ...; | ||
| 35 | ) | ||
| 36 | |||
| 37 | @script:python depends on report@ | ||
| 38 | p1 << search.p1; | ||
| 39 | p2 << search.p2; | ||
| 40 | @@ | ||
| 41 | |||
| 42 | msg = "ERROR: missing pci_free_consistent; pci_alloc_consistent on line %s and return without freeing on line %s" % (p1[0].line,p2[0].line) | ||
| 43 | coccilib.report.print_report(p2[0],msg) | ||
| 44 | |||
| 45 | @script:python depends on org@ | ||
| 46 | p1 << search.p1; | ||
| 47 | p2 << search.p2; | ||
| 48 | @@ | ||
| 49 | |||
| 50 | msg = "ERROR: missing pci_free_consistent; pci_alloc_consistent on line %s and return without freeing on line %s" % (p1[0].line,p2[0].line) | ||
| 51 | cocci.print_main(msg,p1) | ||
| 52 | cocci.print_secs("",p2) | ||
| @@ -7,7 +7,7 @@ · 6 unmodified lines | |||
| 7 | // Copyright: (C) 2010-2012 Gilles Muller, INRIA/LiP6. GPLv2. | 7 | // Copyright: (C) 2010-2012 Gilles Muller, INRIA/LiP6. GPLv2. |
| 8 | // URL: http://coccinelle.lip6.fr/ | 8 | // URL: http://coccinelle.lip6.fr/ |
| 9 | // Comments: | 9 | // Comments: |
| 10 | // Options: -no_includes -include_headers | 10 | // Options: --no-includes --include-headers |
| 11 | 11 | ||
| 12 | virtual patch | 12 | virtual patch |
| 13 | virtual context | 13 | virtual context |
| @@ -11,7 +11,7 @@ · 10 unmodified lines | |||
| 11 | // Copyright: (C) 2010-2012 Gilles Muller, INRIA/LiP6. GPLv2. | 11 | // Copyright: (C) 2010-2012 Gilles Muller, INRIA/LiP6. GPLv2. |
| 12 | // URL: http://coccinelle.lip6.fr/ | 12 | // URL: http://coccinelle.lip6.fr/ |
| 13 | // Comments: | 13 | // Comments: |
| 14 | // Options: -no_includes -include_headers | 14 | // Options: --no-includes --include-headers |
| 15 | 15 | ||
| 16 | virtual patch | 16 | virtual patch |
| 17 | virtual context | 17 | virtual context |
| @@ -9,7 +9,7 @@ · 8 unmodified lines | |||
| 9 | // Copyright: (C) 2010 Gilles Muller, INRIA/LiP6. GPLv2. | 9 | // Copyright: (C) 2010 Gilles Muller, INRIA/LiP6. GPLv2. |
| 10 | // URL: http://coccinelle.lip6.fr/ | 10 | // URL: http://coccinelle.lip6.fr/ |
| 11 | // Comments: | 11 | // Comments: |
| 12 | // Options: -no_includes -include_headers | 12 | // Options: --no-includes --include-headers |
| 13 | 13 | ||
| 14 | virtual context | 14 | virtual context |
| 15 | virtual org | 15 | virtual org |
| @@ -11,7 +11,7 @@ · 10 unmodified lines | |||
| 11 | // Copyright: (C) 2012 Gilles Muller, INRIA/LIP6. GPLv2. | 11 | // Copyright: (C) 2012 Gilles Muller, INRIA/LIP6. GPLv2. |
| 12 | // URL: http://coccinelle.lip6.fr/ | 12 | // URL: http://coccinelle.lip6.fr/ |
| 13 | // Comments: | 13 | // Comments: |
| 14 | // Options: -no_includes -include_headers | 14 | // Options: --no-includes --include-headers |
| 15 | 15 | ||
| 16 | virtual context | 16 | virtual context |
| 17 | virtual org | 17 | virtual org |
| @@ -9,7 +9,7 @@ · 8 unmodified lines | |||
| 9 | // Copyright: (C) 2012 Gilles Muller, INRIA/LiP6. GPLv2. | 9 | // Copyright: (C) 2012 Gilles Muller, INRIA/LiP6. GPLv2. |
| 10 | // URL: http://coccinelle.lip6.fr/ | 10 | // URL: http://coccinelle.lip6.fr/ |
| 11 | // Comments: | 11 | // Comments: |
| 12 | // Options: -no_includes -include_headers | 12 | // Options: --no-includes --include-headers |
| 13 | 13 | ||
| 14 | virtual patch | 14 | virtual patch |
| 15 | virtual context | 15 | virtual context |
| @@ -8,7 +8,7 @@ · 7 unmodified lines | |||
| 8 | // Copyright: (C) 2010 Gilles Muller, INRIA/LiP6. GPLv2. | 8 | // Copyright: (C) 2010 Gilles Muller, INRIA/LiP6. GPLv2. |
| 9 | // URL: http://coccinelle.lip6.fr/ | 9 | // URL: http://coccinelle.lip6.fr/ |
| 10 | // Comments: | 10 | // Comments: |
| 11 | // Options: -no_includes -include_headers | 11 | // Options: --no-includes --include-headers |
| 12 | 12 | ||
| 13 | virtual org | 13 | virtual org |
| 14 | virtual report | 14 | virtual report |
| @@ -6,7 +6,7 @@ · 5 unmodified lines | |||
| 6 | // Copyright: (C) 2010-2012 Gilles Muller, INRIA/LiP6. GPLv2. | 6 | // Copyright: (C) 2010-2012 Gilles Muller, INRIA/LiP6. GPLv2. |
| 7 | // URL: http://coccinelle.lip6.fr/ | 7 | // URL: http://coccinelle.lip6.fr/ |
| 8 | // Comments: | 8 | // Comments: |
| 9 | // Options: -no_includes -include_headers | 9 | // Options: --no-includes --include-headers |
| 10 | 10 | ||
| 11 | virtual context | 11 | virtual context |
| 12 | virtual org | 12 | virtual org |
| @@ -11,7 +11,7 @@ · 10 unmodified lines | |||
| 11 | // Copyright: (C) 2010-2012 Gilles Muller, INRIA/LiP6. GPLv2. | 11 | // Copyright: (C) 2010-2012 Gilles Muller, INRIA/LiP6. GPLv2. |
| 12 | // URL: http://coccinelle.lip6.fr/ | 12 | // URL: http://coccinelle.lip6.fr/ |
| 13 | // Comments: | 13 | // Comments: |
| 14 | // Options: -no_includes -include_headers | 14 | // Options: --no-includes --include-headers |
| 15 | 15 | ||
| 16 | virtual context | 16 | virtual context |
| 17 | virtual org | 17 | virtual org |
| @@ -6,7 +6,7 @@ · 5 unmodified lines | |||
| 6 | // Copyright: (C) 2012 Julia Lawall, INRIA/LIP6. GPLv2. | 6 | // Copyright: (C) 2012 Julia Lawall, INRIA/LIP6. GPLv2. |
| 7 | // Copyright: (C) 2012 Gilles Muller, INRIA/LiP6. GPLv2. | 7 | // Copyright: (C) 2012 Gilles Muller, INRIA/LiP6. GPLv2. |
| 8 | // URL: http://coccinelle.lip6.fr/ | 8 | // URL: http://coccinelle.lip6.fr/ |
| 9 | // Options: -include_headers | 9 | // Options: --include-headers |
| 10 | 10 | ||
| 11 | virtual patch | 11 | virtual patch |
| 12 | virtual context | 12 | virtual context |
| @@ -6,7 +6,7 @@ · 5 unmodified lines | |||
| 6 | // Copyright: (C) 2012 Gilles Muller, INRIA/LiP6. GPLv2. | 6 | // Copyright: (C) 2012 Gilles Muller, INRIA/LiP6. GPLv2. |
| 7 | // URL: http://coccinelle.lip6.fr/ | 7 | // URL: http://coccinelle.lip6.fr/ |
| 8 | // Comments: | 8 | // Comments: |
| 9 | // Options: -no_includes -include_headers | 9 | // Options: --no-includes --include-headers |
| 10 | 10 | ||
| 11 | virtual org | 11 | virtual org |
| 12 | virtual report | 12 | virtual report |
| @@ -8,7 +8,7 @@ · 7 unmodified lines | |||
| 8 | // Copyright: (C) 2010-2012 Gilles Muller, INRIA/LiP6. GPLv2. | 8 | // Copyright: (C) 2010-2012 Gilles Muller, INRIA/LiP6. GPLv2. |
| 9 | // URL: http://coccinelle.lip6.fr/ | 9 | // URL: http://coccinelle.lip6.fr/ |
| 10 | // Comments: requires at least Coccinelle 0.2.4, lex or parse error otherwise | 10 | // Comments: requires at least Coccinelle 0.2.4, lex or parse error otherwise |
| 11 | // Options: -no_includes -include_headers | 11 | // Options: --no-includes --include-headers |
| 12 | 12 | ||
| 13 | virtual org | 13 | virtual org |
| 14 | virtual report | 14 | virtual report |
| @@ -6,7 +6,7 @@ · 5 unmodified lines | |||
| 6 | // Copyright: (C) 2012 Gilles Muller, INRIA/LiP6. GPLv2. | 6 | // Copyright: (C) 2012 Gilles Muller, INRIA/LiP6. GPLv2. |
| 7 | // URL: http://coccinelle.lip6.fr/ | 7 | // URL: http://coccinelle.lip6.fr/ |
| 8 | // Comments: | 8 | // Comments: |
| 9 | // Options: -no_includes -include_headers | 9 | // Options: --no-includes --include-headers |
| 10 | 10 | ||
| 11 | virtual org | 11 | virtual org |
| 12 | virtual report | 12 | virtual report |
| @@ -13,7 +13,7 @@ · 12 unmodified lines | |||
| 13 | // Copyright: (C) 2010 Gilles Muller, INRIA/LiP6. GPLv2. | 13 | // Copyright: (C) 2010 Gilles Muller, INRIA/LiP6. GPLv2. |
| 14 | // URL: http://coccinelle.lip6.fr/ | 14 | // URL: http://coccinelle.lip6.fr/ |
| 15 | // Comments: | 15 | // Comments: |
| 16 | // Options: -no_includes -include_headers | 16 | // Options: --no-includes --include-headers |
| 17 | 17 | ||
| 18 | virtual org | 18 | virtual org |
| 19 | virtual report | 19 | virtual report |
| @@ -6,7 +6,7 @@ · 5 unmodified lines | |||
| 6 | // Copyright: (C) 2012 Gilles Muller, INRIA/LiP6. GPLv2. | 6 | // Copyright: (C) 2012 Gilles Muller, INRIA/LiP6. GPLv2. |
| 7 | // URL: http://coccinelle.lip6.fr/ | 7 | // URL: http://coccinelle.lip6.fr/ |
| 8 | // Comments: | 8 | // Comments: |
| 9 | // Options: -no_includes -include_headers | 9 | // Options: --no-includes --include-headers |
| 10 | 10 | ||
| 11 | virtual org | 11 | virtual org |
| 12 | virtual report | 12 | virtual report |
| @@ -7,7 +7,7 @@ · 6 unmodified lines | |||
| 7 | // Copyright: (C) 2013 Gilles Muller, INRIA/LIP6. GPLv2. | 7 | // Copyright: (C) 2013 Gilles Muller, INRIA/LIP6. GPLv2. |
| 8 | // URL: http://coccinelle.lip6.fr/ | 8 | // URL: http://coccinelle.lip6.fr/ |
| 9 | // Comments: | 9 | // Comments: |
| 10 | // Options: -no_includes -include_headers | 10 | // Options: --no-includes --include-headers |
| 11 | 11 | ||
| 12 | virtual org | 12 | virtual org |
| 13 | virtual report | 13 | virtual report |
| @@ -5,7 +5,7 @@ · 4 unmodified lines | |||
| 5 | // Copyright: (C) 2012 Gilles Muller, INRIA/LiP6. GPLv2. | 5 | // Copyright: (C) 2012 Gilles Muller, INRIA/LiP6. GPLv2. |
| 6 | // URL: http://coccinelle.lip6.fr/ | 6 | // URL: http://coccinelle.lip6.fr/ |
| 7 | // Comments: | 7 | // Comments: |
| 8 | // Options: -no_includes -include_headers | 8 | // Options: --no-includes --include-headers |
| 9 | 9 | ||
| 10 | virtual patch | 10 | virtual patch |
| 11 | virtual context | 11 | virtual context |
| @@ -6,7 +6,7 @@ · 5 unmodified lines | |||
| 6 | // Copyright: (C) 2010-2012 Gilles Muller, INRIA/LiP6. GPLv2. | 6 | // Copyright: (C) 2010-2012 Gilles Muller, INRIA/LiP6. GPLv2. |
| 7 | // URL: http://coccinelle.lip6.fr/ | 7 | // URL: http://coccinelle.lip6.fr/ |
| 8 | // Comments: | 8 | // Comments: |
| 9 | // Options: -no_includes -include_headers | 9 | // Options: --no-includes --include-headers |
| 10 | 10 | ||
| 11 | virtual patch | 11 | virtual patch |
| 12 | virtual context | 12 | virtual context |
| @@ -10,7 +10,7 @@ · 9 unmodified lines | |||
| 10 | // Copyright: (C) 2010 Gilles Muller, INRIA/LiP6. GPLv2. | 10 | // Copyright: (C) 2010 Gilles Muller, INRIA/LiP6. GPLv2. |
| 11 | // URL: http://coccinelle.lip6.fr/ | 11 | // URL: http://coccinelle.lip6.fr/ |
| 12 | // Comments: | 12 | // Comments: |
| 13 | // Options: -no_includes -include_headers | 13 | // Options: --no-includes --include-headers |
| 14 | 14 | ||
| 15 | virtual context | 15 | virtual context |
| 16 | virtual org | 16 | virtual org |
| @@ -10,7 +10,7 @@ · 9 unmodified lines | |||
| 10 | // Copyright: (C) 2010 Gilles Muller, INRIA/LiP6. GPLv2. | 10 | // Copyright: (C) 2010 Gilles Muller, INRIA/LiP6. GPLv2. |
| 11 | // URL: http://coccinelle.lip6.fr/ | 11 | // URL: http://coccinelle.lip6.fr/ |
| 12 | // Comments: | 12 | // Comments: |
| 13 | // Options: -no_includes -include_headers | 13 | // Options: --no-includes --include-headers |
| 14 | 14 | ||
| 15 | virtual context | 15 | virtual context |
| 16 | virtual org | 16 | virtual org |
| @@ -8,7 +8,7 @@ · 7 unmodified lines | |||
| 8 | // Copyright: (C) 2010 Gilles Muller, INRIA/LiP6. GPLv2. | 8 | // Copyright: (C) 2010 Gilles Muller, INRIA/LiP6. GPLv2. |
| 9 | // URL: http://coccinelle.lip6.fr/ | 9 | // URL: http://coccinelle.lip6.fr/ |
| 10 | // Comments: | 10 | // Comments: |
| 11 | // Options: -no_includes -include_headers | 11 | // Options: --no-includes --include-headers |
| 12 | 12 | ||
| 13 | virtual context | 13 | virtual context |
| 14 | virtual org | 14 | virtual org |
| @@ -7,7 +7,7 @@ · 6 unmodified lines | |||
| 7 | // Copyright: (C) 2012 Gilles Muller, INRIA. GPLv2. | 7 | // Copyright: (C) 2012 Gilles Muller, INRIA. GPLv2. |
| 8 | // URL: http://coccinelle.lip6.fr/ | 8 | // URL: http://coccinelle.lip6.fr/ |
| 9 | // Comments: | 9 | // Comments: |
| 10 | // Options: -no_includes -include_headers | 10 | // Options: --no-includes --include-headers |
| 11 | 11 | ||
| 12 | virtual patch | 12 | virtual patch |
| 13 | virtual context | 13 | virtual context |