On Wed, Apr 7, 2021 at 1:01 PM Erik Rijkers <e...@xs4all.nl> wrote: > > Recently (last day or so), I get this warning from gcc 10.2: > > ----- > hba.c:3160:18: warning: comparison of unsigned enum expression < 0 is always > false [-Wtautological-compare] > if (auth_method < 0 || USER_AUTH_LAST < auth_method) > ~~~~~~~~~~~ ^ ~ > 1 warning generated. > -----
This one is from 9afffcb833d3c5e59a328a2af674fac7e7334fc1 (adding Jacob and Michael to cc) And it makes sense to give warning on that. AuthMethod is an enum. It can by definition not have a value that's not in the enum. That check simply seems wrong/unnecessary. The only other use fo USER_AUTH_LAST is in fill_hba_line() which also gets the name of the auth. That one uses : StaticAssertStmt(lengthof(UserAuthName) == USER_AUTH_LAST + 1, "UserAuthName[] must match the UserAuth enum"); Which seems like a more reasonable check. But that also highlights -- shouldn't that function then also be made to use hba_authname(), and the assert moved into the function? That seems like the cleanest way? -- Magnus Hagander Me: https://www.hagander.net/ Work: https://www.redpill-linpro.com/