Home | History | Annotate | Line # | Download | only in lint1
msg_339.c revision 1.1
      1 /*	$NetBSD: msg_339.c,v 1.1 2021/02/19 12:28:56 rillig Exp $	*/
      2 # 3 "msg_339.c"
      3 
      4 // Test for message: option '%c' should be listed in the options string [339]
      5 
      6 int getopt(int, char *const *, const char *);
      7 extern char *optarg;
      8 
      9 int
     10 main(int argc, char **argv)
     11 {
     12 	int o;
     13 
     14 	while ((o = getopt(argc, argv, "a:bc:d")) != -1) { /* expect: 338, 338 */
     15 		switch (o) {
     16 		case 'a':
     17 			break;
     18 		case 'b':
     19 			/*
     20 			 * The following while loop must not finish the check
     21 			 * for the getopt options.
     22 			 */
     23 			while (optarg[0] != '\0')
     24 				optarg++;
     25 			break;
     26 		case 'e':	/* expect: option 'e' should be listed */
     27 			break;
     28 		case 'f':	/* expect: option 'f' should be listed */
     29 			/*
     30 			 * The case labels in nested switch statements are
     31 			 * ignored by the check for getopt options.
     32 			 */
     33 			switch (optarg[0]) {
     34 			case 'X':
     35 				break;
     36 			}
     37 			break;
     38 		case '?':
     39 		default:
     40 			break;
     41 		}
     42 	}
     43 
     44 	return 0;
     45 }
     46