On 22/04/2020 02:37, Rosen Penev wrote: > Found with -Wtautological-unsigned-zero-compare > > Signed-off-by: Rosen Penev <rosenp@xxxxxxxxx> > --- > utils/v4l2-compliance/v4l2-test-controls.cpp | 2 -- > 1 file changed, 2 deletions(-) > > diff --git a/utils/v4l2-compliance/v4l2-test-controls.cpp b/utils/v4l2-compliance/v4l2-test-controls.cpp > index 8c4480be..251a6049 100644 > --- a/utils/v4l2-compliance/v4l2-test-controls.cpp > +++ b/utils/v4l2-compliance/v4l2-test-controls.cpp > @@ -80,8 +80,6 @@ static int checkQCtrl(struct node *node, struct test_query_ext_ctrl &qctrl) > return fail("min > max\n"); > if (qctrl.step == 0) > return fail("step == 0\n"); > - if (qctrl.step < 0) > - return fail("step < 0\n"); Ah, nice. This is actually a bug since this test needs to be done for struct v4l2_queryctl (where step is signed) instead of struct v4l2_query_ext_ctrl (where step is unsigned). I've made a patch fixing this correctly. Regards, Hans > if (static_cast<unsigned>(qctrl.step) > static_cast<unsigned>(qctrl.maximum - qctrl.minimum) && > qctrl.maximum != qctrl.minimum) > return fail("step > max - min\n"); >