msg_371.c revision 1.1
1/* $NetBSD: msg_371.c,v 1.1 2024/03/01 19:39:29 rillig Exp $ */ 2# 3 "msg_371.c" 3 4// Test for message: bit position '%.*s' (%ju) in '%.*s' out of range %u..%u [371] 5 6/* 7 * In old-style formats, bit positions are 1-based and must be in the range 8 * from 1 to 32. In new-style formats, bit positions are 0-based and must be 9 * in the range from 0 to 63. 10 */ 11 12/* lint1-extra-flags: -X 351 */ 13 14typedef typeof(sizeof(0)) size_t; 15typedef unsigned long long uint64_t; 16 17int snprintb(char*, size_t, const char*, uint64_t); 18 19void 20example(unsigned u32, uint64_t u64) 21{ 22 char buf[64]; 23 24 /* expect+11: warning: bit position '\000' (0) in '\000zero' out of range 1..32 [371] */ 25 /* expect+10: warning: non-printing character '\177' in description 'bit32""\041bit33""\177' [363] */ 26 /* expect+9: warning: non-printing character '\377' in description 'bit32""\041bit33""\177bit127""\377' [363] */ 27 snprintb(buf, sizeof(buf), 28 "\020" 29 "\000zero" 30 "\001bit1" 31 "\040bit32" 32 "\041bit33" 33 "\177bit127" 34 "\377bit255", 35 u32); 36 37 /* expect+10: warning: bit position '\100' (64) in 'b\100bit64\0' out of range 0..63 [371] */ 38 /* expect+9: warning: bit position '\177' (127) in 'b\177bit127\0' out of range 0..63 [371] */ 39 /* expect+8: warning: bit position '\377' (255) in 'b\377bit255\0' out of range 0..63 [371] */ 40 snprintb(buf, sizeof(buf), 41 "\177\020" 42 "b\000bit0\0" 43 "b\077bit63\0" 44 "b\100bit64\0" 45 "b\177bit127\0" 46 "b\377bit255\0", 47 u64); 48 49 /* expect+11: warning: bit position '\100' (64) in 'F\100\000none\0' out of range 0..63 [371] */ 50 /* expect+10: warning: bit position '\100' (64) in 'f\100\001oob\0' out of range 0..63 [371] */ 51 /* expect+9: warning: bit field end 65 in 'f\100\001oob\0' out of range 0..64 [373] */ 52 /* expect+8: warning: bit position '\101' (65) in 'F\101\001oob\0' out of range 0..63 [371] */ 53 /* expect+7: warning: bit field end 66 in 'F\101\001oob\0' out of range 0..64 [373] */ 54 snprintb(buf, sizeof(buf), 55 "\177\020" 56 "f\077\001msb\0" 57 "F\100\000none\0" 58 "f\100\001oob\0" 59 "F\101\001oob\0", 60 u64); 61} 62