freedreno: fix bad bitshift warnings
authorRob Clark <robclark@freedesktop.org>
Thu, 2 Jun 2016 20:23:36 +0000 (16:23 -0400)
committerRob Clark <robclark@freedesktop.org>
Thu, 2 Jun 2016 20:29:32 +0000 (16:29 -0400)
Coverity doesn't realize idx will never be negative.  Throw in some
assert()s to help it out.

(Hopefully assert() isn't getting compiled out for coverity build.. but
there seems to be just one way to find out.  We might have to change
these to assume())

Fixes CID 13624421362443

Signed-off-by: Rob Clark <robclark@freedesktop.org>
src/gallium/drivers/freedreno/freedreno_query_hw.c

index 04452efadcdfad59cfccc86d46f6863d356ce73a..95fff3f108e10c3e014cb566eb4b52bdd199882f 100644 (file)
@@ -94,6 +94,7 @@ resume_query(struct fd_context *ctx, struct fd_hw_query *hq,
                struct fd_ringbuffer *ring)
 {
        int idx = pidx(hq->provider->query_type);
+       assert(idx >= 0);   /* query never would have been created otherwise */
        assert(!hq->period);
        ctx->active_providers |= (1 << idx);
        hq->period = util_slab_alloc(&ctx->sample_period_pool);
@@ -108,6 +109,7 @@ pause_query(struct fd_context *ctx, struct fd_hw_query *hq,
                struct fd_ringbuffer *ring)
 {
        int idx = pidx(hq->provider->query_type);
+       assert(idx >= 0);   /* query never would have been created otherwise */
        assert(hq->period && !hq->period->end);
        assert(ctx->active_providers & (1 << idx));
        hq->period->end = get_sample(ctx, ring, hq->base.type);