msg_206.c revision 1.6
11.6Srillig/* $NetBSD: msg_206.c,v 1.6 2022/05/22 13:58:59 rillig Exp $ */ 21.1Srillig# 3 "msg_206.c" 31.1Srillig 41.1Srillig// Test for message: enumeration value(s) not handled in switch [206] 51.1Srillig 61.3Srillig/* lint1-extra-flags: -eh */ 71.3Srillig 81.3Srilligenum number { 91.3Srillig ONE, TWO, THREE 101.3Srillig}; 111.3Srillig 121.3Srilligvoid 131.3Srilligtest(enum number num) 141.3Srillig{ 151.3Srillig switch (num) { 161.3Srillig case ONE: 171.3Srillig case TWO: 181.3Srillig break; 191.3Srillig } 201.3Srillig /* expect-1: warning: enumeration value(s) not handled in switch [206] */ 211.3Srillig 221.3Srillig switch (num) { 231.3Srillig case ONE: 241.3Srillig case TWO: 251.3Srillig case THREE: 261.3Srillig break; 271.3Srillig } 281.3Srillig} 291.5Srillig 301.5Srilligint 311.5Srilligtoo_many(enum number num) 321.5Srillig{ 331.5Srillig switch (num) { 341.5Srillig case ONE: 351.5Srillig return 1; 361.5Srillig case TWO: 371.5Srillig return 2; 381.5Srillig case THREE: 391.5Srillig return 3; 401.5Srillig case 3: 411.5Srillig return -1; 421.5Srillig } 431.6Srillig /* 441.6Srillig * Before func.c 1.137 from 2022-05-22, lint complained that there 451.6Srillig * were enum constants not handled in switch, even though all of them 461.6Srillig * are handled. The code smell in this case is that there are _too 471.6Srillig * many_ branches that cover "impossible" values. 481.6Srillig */ 491.5Srillig return 3; 501.5Srillig} 51