+ goto warn_unreachable;
+
+ case STATEMENT_DECLARATION: {
+ /* Only warn if there is at least one declarator with an initializer.
+ * This typically occurs in switch statements. */
+ declaration_statement_t const *const decl = &stmt->declaration;
+ entity_t const * ent = decl->declarations_begin;
+ entity_t const *const last = decl->declarations_end;
+ for (;; ent = ent->base.next) {
+ if (ent->kind == ENTITY_VARIABLE &&
+ ent->variable.initializer != NULL) {
+ goto warn_unreachable;
+ }
+ if (ent == last)
+ return;
+ }
+ }