Home | History | Annotate | Line # | Download | only in lint1
      1 /*	$NetBSD: msg_375.c,v 1.4 2024/08/31 06:57:31 rillig Exp $	*/
      2 # 3 "msg_375.c"
      3 
      4 // Test for message: comparison value '%.*s' (%ju) exceeds maximum field value %ju [375]
      5 
      6 /*
      7  * When a bit field can take the values 0 to 15, there is no point comparing
      8  * it to 16.
      9  */
     10 
     11 /* lint1-extra-flags: -X 351 */
     12 
     13 typedef typeof(sizeof(0)) size_t;
     14 typedef unsigned long long uint64_t;
     15 
     16 int snprintb(char *, size_t, const char *, uint64_t);
     17 
     18 void
     19 example(uint64_t u64)
     20 {
     21 	char buf[64];
     22 
     23 	/* expect+14: warning: comparison value '\020' (16) exceeds maximum field value 15 [375] */
     24 	/* expect+13: warning: comparison value '\377' (255) exceeds maximum field value 15 [375] */
     25 	/* expect+12: warning: comparison value '\020' (16) exceeds maximum field value 15 [375] */
     26 	/* expect+11: warning: comparison value '\377' (255) exceeds maximum field value 15 [375] */
     27 	snprintb(buf, sizeof(buf),
     28 	    "\177\020"
     29 	    "f\000\004low\0"
     30 		"=\01715\0"
     31 		"=\02016\0"
     32 		"=\37716\0"
     33 	    "F\004\004low\0"
     34 		":\01715\0"
     35 		":\02016\0"
     36 		":\37716\0",
     37 	    u64);
     38 }
     39