Re: problem with signedness of PSEUDO_VALs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 22/07/18 21:31, Ramsay Jones wrote:
> 
> 
> On 22/07/18 21:26, Ramsay Jones wrote:
> [snip]
>>> +* shift instructions:
>>> +	the type of the result must be the same as the type
>>> +	of the left operand but the type of the right operand
>>> +	is independent.
>>
>> But for constant shifts, the shift direction can be flipped
>> and the shift amount made non-negative, right?
> 
> Hmm, except that is not allowed by the C standard? (need to
> check).

Yep, C11, 6.5.7-3 says:

3 The integer promotions are performed on each of the operands. The
  type of the result is that of the promoted left operand. If the
  value of the right operand is negative or is greater than or equal
  to the width of the promoted left operand, the behavior is undefined.

... and a few experiments with gcc seems to indicate that negative
shifts (left or right) return zero.

ATB,
Ramsay Jones

--
To unsubscribe from this list: send the line "unsubscribe linux-sparse" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Newbies FAQ]     [LKML]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Trinity Fuzzer Tool]

  Powered by Linux