drivers/gpu/drm/i915/i915_reg.h:90:shift-overflow problem ?
Chris Wilson
chris at chris-wilson.co.uk
Mon May 30 14:15:15 UTC 2016
On Mon, May 30, 2016 at 11:32:59AM +0100, David Binderman wrote:
> Hello there,
>
> drivers/gpu/drm/i915/i915_reg.h:90:28: warning: result of β65535 <<
> 20β requires 37 bits to represent, but βintβ only has 32 bits
> [-Wshift-overflow=]
>
> Source code is
>
> #define BSM_MASK (0xFFFF << 20)
>
> Maybe better code
>
> #define BSM_MASK (((unsigned long) 0xFFFF) << 20)
#define BSM_MASK (~0u << 20)
It should be a 32bit mask. The current (with the exception of undefined
behaviour of shifting into the signbit, fortunately gcc does what we
expect) code is functionally current as the mask will be truncated to
32bits.
-Chris
--
Chris Wilson, Intel Open Source Technology Centre
More information about the dri-devel
mailing list