1 // SPDX-License-Identifier: GPL-2.0-only << 2 /// 1 /// 3 /// Remove unneeded semicolon. !! 2 /// Removes unneeded semicolon. 4 /// 3 /// 5 // Confidence: Moderate 4 // Confidence: Moderate 6 // Copyright: (C) 2012 Peter Senna Tschudin, I !! 5 // Copyright: (C) 2012 Peter Senna Tschudin, INRIA/LIP6. GPLv2. 7 // URL: https://coccinelle.gitlabpages.inria.f !! 6 // URL: http://coccinelle.lip6.fr/ 8 // Comments: Some false positives on empty def 7 // Comments: Some false positives on empty default cases in switch statements. 9 // Options: --no-includes --include-headers 8 // Options: --no-includes --include-headers 10 9 11 virtual patch 10 virtual patch 12 virtual report 11 virtual report 13 virtual context 12 virtual context 14 virtual org 13 virtual org 15 14 16 @r_default@ 15 @r_default@ 17 position p; 16 position p; 18 @@ 17 @@ 19 switch (...) 18 switch (...) 20 { 19 { 21 default: ...;@p 20 default: ...;@p 22 } 21 } 23 22 24 @r_case@ 23 @r_case@ 25 position p; 24 position p; 26 @@ 25 @@ 27 ( 26 ( 28 switch (...) 27 switch (...) 29 { 28 { 30 case ...:;@p 29 case ...:;@p 31 } 30 } 32 | 31 | 33 switch (...) 32 switch (...) 34 { 33 { 35 case ...:... 34 case ...:... 36 case ...:;@p 35 case ...:;@p 37 } 36 } 38 | 37 | 39 switch (...) 38 switch (...) 40 { 39 { 41 case ...:... 40 case ...:... 42 case ...: 41 case ...: 43 case ...:;@p 42 case ...:;@p 44 } 43 } 45 ) 44 ) 46 45 47 @r1@ 46 @r1@ 48 statement S; 47 statement S; 49 position p1; 48 position p1; 50 position p != {r_default.p, r_case.p}; 49 position p != {r_default.p, r_case.p}; 51 identifier label; 50 identifier label; 52 @@ 51 @@ 53 ( 52 ( 54 label:; 53 label:; 55 | 54 | 56 S@p1;@p 55 S@p1;@p 57 ) 56 ) 58 57 59 @script:python@ 58 @script:python@ 60 p << r1.p; 59 p << r1.p; 61 p1 << r1.p1; 60 p1 << r1.p1; 62 @@ 61 @@ 63 if p[0].line != p1[0].line_end: 62 if p[0].line != p1[0].line_end: 64 cocci.include_match(False) 63 cocci.include_match(False) 65 64 66 @depends on patch@ 65 @depends on patch@ 67 position r1.p; 66 position r1.p; 68 @@ 67 @@ 69 -;@p 68 -;@p 70 69 71 @script:python depends on report@ 70 @script:python depends on report@ 72 p << r1.p; 71 p << r1.p; 73 @@ 72 @@ 74 coccilib.report.print_report(p[0],"Unneeded se 73 coccilib.report.print_report(p[0],"Unneeded semicolon") 75 74 76 @depends on context@ 75 @depends on context@ 77 position r1.p; 76 position r1.p; 78 @@ 77 @@ 79 *;@p 78 *;@p 80 79 81 @script:python depends on org@ 80 @script:python depends on org@ 82 p << r1.p; 81 p << r1.p; 83 @@ 82 @@ 84 cocci.print_main("Unneeded semicolon",p) 83 cocci.print_main("Unneeded semicolon",p)
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.