On 24.03.2020 14:59, Henri Verbeet wrote:
On Tue, 24 Mar 2020 at 17:45, Matteo Bruni matteo.mystral@gmail.com wrote:
I assume replacing "op < 0" with an explicit "op < SCT_VSFLOAT" doesn't avoid the warning. Does replacing the if with an assert do the trick, by any chance?
It's perhaps a little subtle, but if you compare "op" against "ARRAY_SIZE(const_tbl)" (which is what you really care about here anyway, right?) instead of SCT_PSINT, you can drop the check against 0, regardless of whether the enum ends up being a signed or unsigned type.
Strictly speaking, if enum would be signed the check wouldn't catch some invalid values, but I don't think that's worrying about. If we want it fully strict, we could change argument type from enum to unsigned int.
Thanks,
Jacek