aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorLuc Van Oostenryck <luc.vanoostenryck@gmail.com>2020-05-05 17:55:41 +0200
committerLuc Van Oostenryck <luc.vanoostenryck@gmail.com>2020-05-21 17:27:46 +0200
commitb307a6b54da61e462c726619dc45b2f19e850c6d (patch)
tree133bb31d6a137560e36217d6c20ddd6a5787790f
parentf3ec4bb41cddaeb154f0b8a7ffbc1d7d64691263 (diff)
downloadsparse-b307a6b54da61e462c726619dc45b2f19e850c6d.tar.gz
bad-label: check for unused labels
Issue a warning if a label is defined but not used. Note: this should take in account the attribute 'unused'. Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
-rw-r--r--scope.c8
-rw-r--r--validation/label-unused.c1
2 files changed, 8 insertions, 1 deletions
diff --git a/scope.c b/scope.c
index 635e0d6d..3a0d784f 100644
--- a/scope.c
+++ b/scope.c
@@ -150,6 +150,14 @@ void start_label_scope(void)
void end_label_scope(void)
{
+ struct symbol *sym;
+
+ FOR_EACH_PTR(label_scope->symbols, sym) {
+ if (!sym->stmt || sym->used)
+ continue;
+ warning(sym->pos, "unused label '%s'", show_ident(sym->ident));
+ } END_FOR_EACH_PTR(sym);
+
end_scope(&label_scope);
}
diff --git a/validation/label-unused.c b/validation/label-unused.c
index c136c7a8..a654ef77 100644
--- a/validation/label-unused.c
+++ b/validation/label-unused.c
@@ -15,7 +15,6 @@ l:
/*
* check-name: label-unused
- * check-known-to-fail
*
* check-error-start
label-unused.c:3:1: warning: unused label 'l'