/* $NetBSD: msg_206.c,v 1.7 2023/07/07 19:45:22 rillig Exp $ */ # 3 "msg_206.c" // Test for message: enumeration value(s) not handled in switch [206] /* lint1-extra-flags: -eh -X 351 */ enum number { ONE, TWO, THREE }; void test(enum number num) { switch (num) { case ONE: case TWO: break; } /* expect-1: warning: enumeration value(s) not handled in switch [206] */ switch (num) { case ONE: case TWO: case THREE: break; } } int too_many(enum number num) { switch (num) { case ONE: return 1; case TWO: return 2; case THREE: return 3; case 3: return -1; } /* * Before func.c 1.137 from 2022-05-22, lint complained that there * were enum constants not handled in switch, even though all of them * are handled. The code smell in this case is that there are _too * many_ branches that cover "impossible" values. */ return 3; }