1 1.4 rillig /* $NetBSD: msg_367.c,v 1.4 2025/08/31 20:43:27 rillig Exp $ */ 2 1.1 rillig # 3 "msg_367.c" 3 1.1 rillig 4 1.1 rillig // Test for message: empty description in '%.*s' [367] 5 1.1 rillig 6 1.1 rillig /* 7 1.1 rillig * Each bit or field or comparison value gets a description. If such a 8 1.1 rillig * description is empty, the generated output will contain empty angle 9 1.1 rillig * brackets or multiple adjacent commas or commas adjacent to an angle 10 1.1 rillig * bracket, such as '<,,,,>'. 11 1.1 rillig */ 12 1.1 rillig 13 1.1 rillig /* lint1-extra-flags: -X 351 */ 14 1.1 rillig 15 1.1 rillig typedef typeof(sizeof(0)) size_t; 16 1.1 rillig typedef unsigned long long uint64_t; 17 1.1 rillig 18 1.3 rillig int snprintb(char *, size_t, const char *, uint64_t); 19 1.1 rillig 20 1.1 rillig void 21 1.2 rillig old_style(unsigned u32) 22 1.2 rillig { 23 1.2 rillig char buf[64]; 24 1.2 rillig 25 1.2 rillig /* expect+10: warning: empty description in '\001' [367] */ 26 1.2 rillig /* expect+9: warning: empty description in '\002' [367] */ 27 1.2 rillig /* expect+8: warning: empty description in '\003' [367] */ 28 1.2 rillig /* expect+7: warning: empty description in '\004' [367] */ 29 1.2 rillig snprintb(buf, sizeof(buf), 30 1.2 rillig "\020" 31 1.2 rillig "\001" 32 1.2 rillig "\002" 33 1.2 rillig "\003" 34 1.2 rillig "\004", 35 1.2 rillig u32); 36 1.2 rillig 37 1.2 rillig /* expect+10: warning: empty description in '\001' [367] */ 38 1.2 rillig /* expect+9: warning: empty description in '\002' [367] */ 39 1.2 rillig /* expect+8: warning: empty description in '\003' [367] */ 40 1.2 rillig /* expect+7: warning: empty description in '\004' [367] */ 41 1.2 rillig snprintb(buf, sizeof(buf), 42 1.2 rillig "\020" 43 1.2 rillig "\001" "" "" 44 1.2 rillig "\002" "" "" 45 1.2 rillig "\003" "" "" 46 1.2 rillig "\004" "" "", 47 1.2 rillig u32); 48 1.2 rillig 49 1.2 rillig // Single-letter descriptions are not empty. 50 1.2 rillig snprintb(buf, sizeof(buf), 51 1.2 rillig "\020" 52 1.2 rillig "\001a" 53 1.2 rillig "\002b" 54 1.2 rillig "\003c" 55 1.2 rillig "\004d", 56 1.2 rillig u32); 57 1.2 rillig } 58 1.2 rillig 59 1.2 rillig void 60 1.2 rillig new_style(uint64_t u64) 61 1.1 rillig { 62 1.1 rillig char buf[64]; 63 1.1 rillig 64 1.1 rillig /* expect+4: warning: empty description in 'b\000\0' [367] */ 65 1.1 rillig snprintb(buf, sizeof(buf), 66 1.1 rillig "\177\020" 67 1.1 rillig "b\000\0", 68 1.2 rillig u64); 69 1.1 rillig 70 1.1 rillig /* expect+4: warning: empty description in 'f\000\010\0' [367] */ 71 1.1 rillig snprintb(buf, sizeof(buf), 72 1.1 rillig "\177\020" 73 1.1 rillig "f\000\010\0", 74 1.2 rillig u64); 75 1.1 rillig 76 1.1 rillig // No warning, as 'F' does not take a description. 77 1.1 rillig // If there were a description, it would simply be skipped. 78 1.1 rillig snprintb(buf, sizeof(buf), 79 1.1 rillig "\177\020" 80 1.1 rillig "F\000\010\0", 81 1.2 rillig u64); 82 1.1 rillig 83 1.1 rillig /* expect+4: warning: empty description in '=\000\0' [367] */ 84 1.1 rillig snprintb(buf, sizeof(buf), 85 1.1 rillig "\177\020" 86 1.1 rillig "=\000\0", 87 1.2 rillig u64); 88 1.1 rillig 89 1.1 rillig /* expect+4: warning: empty description in ':\000\0' [367] */ 90 1.1 rillig snprintb(buf, sizeof(buf), 91 1.1 rillig "\177\020" 92 1.1 rillig ":\000\0", 93 1.2 rillig u64); 94 1.1 rillig 95 1.1 rillig /* expect+4: warning: empty description in '*\0' [367] */ 96 1.1 rillig snprintb(buf, sizeof(buf), 97 1.1 rillig "\177\020" 98 1.1 rillig "*\0", 99 1.2 rillig u64); 100 1.2 rillig 101 1.2 rillig // Single-letter descriptions are not empty. 102 1.2 rillig snprintb(buf, sizeof(buf), 103 1.2 rillig "\177\020" 104 1.2 rillig "b\000b\0" 105 1.2 rillig "f\001\001f\0" 106 1.2 rillig "F\002\002F\0" 107 1.2 rillig "=\000z\0" 108 1.2 rillig ":\001o\0" 109 1.2 rillig "*d\0", 110 1.4 rillig /* expect+1: warning: conversion '=' does not mix with 'F' [386] */ 111 1.2 rillig u64 >> 1); 112 1.1 rillig 113 1.2 rillig /* expect+6: warning: empty description in 'b\001""""""\0' [367] */ 114 1.2 rillig /* expect+5: warning: empty description in 'b\003""""""\0' [367] */ 115 1.2 rillig snprintb(buf, sizeof(buf), 116 1.2 rillig "\177\020" 117 1.2 rillig "b\001" "" "" "\0" 118 1.2 rillig "b\003" "" "" "\0", 119 1.2 rillig u64); 120 1.1 rillig } 121