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