From: Kirill A. Korinsky Subject: Re: relayd: fix GCC16 warnings To: Theo Buehler Cc: rafael@sizeofvoid.org, tech@openbsd.org Date: Sat, 24 Oct 2026 01:06:32 +0200 On Sat, 24 Oct 2026 00:20:58 +0200, Theo Buehler wrote: > > On Fri, Oct 23, 2026 at 11:41:47PM +0200, Kirill A. Korinsky wrote: > > On Fri, 23 Oct 2026 21:58:19 +0200, > > Rafael Sadowski wrote: > > > > > > Make GCC16 happy with relayd code > > > > > > ca.c:348:50: warning: operand of '?:' changes signedness from 'int' to 'unsigned int' due to unsignedness of other operand [-Wsign-compare] > > > 348 | cko.cko_tlen = (ret > 0) ? len : -1; > > > > > > > > ... > > > - cko.cko_tlen = (ret > 0) ? len : -1; > > > + cko.cko_tlen = (ret > 0) ? (int)len : -1; > > > > Not sure that I understand this warning. > > > > len is int, -1 is int, cko_tlen is int. > > > > Why gcc things what something here is unsigned int? > > gcc is often dumb, but here it is right (even if it's a harmless > warning) > > len is an unsigned int. Thus the return type of the conditional > expression is unsigned int and -1 ets promoted. > Thanks, probably I need some sleep, indeed. -- wbr, Kirill