From: Alexander Bluhm Subject: Re: ddb mbuf chains To: Vitaliy Makkoveev , tech@openbsd.org Date: Tue, 10 Sep 2024 16:56:42 +0200 On Tue, Sep 10, 2024 at 03:34:13PM +0200, Claudio Jeker wrote: > > + else > > + (*pr)(", size %u", > > + m->m_flags & M_PKTHDR ? MHLEN : MLEN); > > (*pr)("\n"); > > indent = deep ? "|+-" : " +-"; > > } > > This fails on sparc64: > /sys/kern/uipc_mbuf.c: In function 'm_print_chain': > /sys/kern/uipc_mbuf.c:1573: warning: format '%u' expects type 'unsigned > int', but argument 2 has type 'long unsigned int' Thanks, fixed. > Both MHLEN and MLEN use sizeof in their definition and require therefor a > %zu fromat string. Surprised this didn't trigger on amd64. I have the suspicion that prototype parameter int (*pr)(const char *, ...) __attribute__((__format__(__kprintf__,1,2))) does not work correctly on clang. During developement I once replaced (*pr) with printf to find bugs on amd64. But of course I introduced the %u after the temporary test. bluhm