All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] scripts/coccinelle/misc/semicolon.cocci: Add unneeded semicolon test
@ 2012-12-08 17:34 ` Peter Senna Tschudin
  0 siblings, 0 replies; 15+ messages in thread
From: Peter Senna Tschudin @ 2012-12-08 17:34 UTC (permalink / raw)
  To: mmarek
  Cc: Julia.Lawall, Gilles.Muller, nicolas.palix, peter.senna, cocci,
	linux-kernel

This semantic patch looks for semicolons that can be removed without
changing the semantics of the code. The confidence is moderate
because there are some false positives on cases like:

b/drivers/mmc/host/cb710-mmc.c:589
                break;
        case MMC_POWER_UP:
        default:
-               /* ignore */;
        }

There are 37 patches accepted reported by this semantic patch and
more than 300 fixes to be applied.

Signed-off-by: Peter Senna Tschudin <peter.senna@gmail.com>
---
Resending unchanged. Last sent on November 13 2012. First sent on October 30 2012.

 scripts/coccinelle/misc/semicolon.cocci | 83 +++++++++++++++++++++++++++++++++
 1 file changed, 83 insertions(+)
 create mode 100644 scripts/coccinelle/misc/semicolon.cocci

diff --git a/scripts/coccinelle/misc/semicolon.cocci b/scripts/coccinelle/misc/semicolon.cocci
new file mode 100644
index 0000000..a47eba2
--- /dev/null
+++ b/scripts/coccinelle/misc/semicolon.cocci
@@ -0,0 +1,83 @@
+///
+/// Removes unneeded semicolon.
+///
+// Confidence: Moderate
+// Copyright: (C) 2012 Peter Senna Tschudin, INRIA/LIP6.  GPLv2.
+// URL: http://coccinelle.lip6.fr/
+// Comments: Some false positives on empty default cases in switch statements.
+// Options: --no-includes --include-headers
+
+virtual patch
+virtual report
+virtual context
+virtual org
+
+@r_default@
+position p;
+@@
+switch (...)
+{
+default: ...;@p
+}
+
+@r_case@
+position p;
+@@
+(
+switch (...)
+{
+case ...:;@p
+}
+|
+switch (...)
+{
+case ...:...
+case ...:;@p
+}
+|
+switch (...)
+{
+case ...:...
+case ...:
+case ...:;@p
+}
+)
+
+@r1@
+statement S;
+position p1;
+position p != {r_default.p, r_case.p};
+identifier label;
+@@
+(
+label:;
+|
+S@p1;@p
+)
+
+@script:python@
+p << r1.p;
+p1 << r1.p1;
+@@
+if p[0].line != p1[0].line_end:
+	cocci.include_match(False)
+
+@depends on patch@
+position r1.p;
+@@
+-;@p
+
+@script:python depends on report@
+p << r1.p;
+@@
+coccilib.report.print_report(p[0],"Unneeded semicolon")
+
+@depends on context@
+position r1.p;
+@@
+*;@p
+
+@script:python depends on org@
+p << r1.p;
+@@
+cocci.print_main("Unneeded semicolon",p)
-- 
1.7.11.7


^ permalink raw reply related	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2013-01-24 11:18 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-12-08 17:34 [PATCH] scripts/coccinelle/misc/semicolon.cocci: Add unneeded semicolon test Peter Senna Tschudin
2012-12-08 17:34 ` [Cocci] " Peter Senna Tschudin
2012-12-08 17:45 ` Joe Perches
2012-12-08 17:45   ` [Cocci] " Joe Perches
2012-12-08 18:13   ` Peter Senna Tschudin
2012-12-08 18:13     ` [Cocci] " Peter Senna Tschudin
2012-12-08 18:39     ` Joe Perches
2012-12-08 18:39       ` [Cocci] " Joe Perches
2012-12-09 17:51       ` Peter Senna Tschudin
2012-12-09 17:51         ` [Cocci] " Peter Senna Tschudin
2012-12-10 18:08         ` [PATCH] checkpatch: Add --strict test for switch/default missing break Joe Perches
2013-01-23 21:41 ` [PATCH] scripts/coccinelle/misc/semicolon.cocci: Add unneeded semicolon test Peter Senna Tschudin
2013-01-23 21:41   ` [Cocci] " Peter Senna Tschudin
2013-01-24 11:11   ` Michal Marek
2013-01-24 11:11     ` [Cocci] " Michal Marek

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.