https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87392

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
         Resolution|---                         |INVALID

--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
See
https://gcc.gnu.org/onlinedocs/gcc-8.2.0/gcc/Integers-implementation.html#Integers-implementation

The results of some bitwise operations on signed integers (C90 6.3, C99 and C11
6.5).
Bitwise operators act on the representation of the value including both the
sign and value bits, where the sign bit is considered immediately above the
highest-value value bit. Signed ‘>>’ acts on negative numbers by sign
extension.

As an extension to the C language, GCC does not use the latitude given in C99
and C11 only to treat certain aspects of signed ‘<<’ as undefined. However,
-fsanitize=shift (and -fsanitize=undefined) will diagnose such cases. They are
also diagnosed where constant expressions are required.

Reply via email to