implement-c.texi (Integers Implementation): Make GCC's promises about signed left...
authorPaolo Bonzini <bonzini@gcc.gnu.org>
Thu, 26 Nov 2015 10:16:56 +0000 (10:16 +0000)
committerPaolo Bonzini <bonzini@gcc.gnu.org>
Thu, 26 Nov 2015 10:16:56 +0000 (10:16 +0000)
2015-11-26  Paolo Bonzini <bonzini@gnu.org>

* doc/implement-c.texi (Integers Implementation): Make GCC's promises
about signed left shift stronger and clarify the cases when they're
broken.

From-SVN: r230931

gcc/ChangeLog
gcc/doc/implement-c.texi

index 58b789b81d9fc39481f55f98e9ad7300d1775f57..3405b1d4538acee2ba94250afeb119ac33ee5ae9 100644 (file)
@@ -1,3 +1,9 @@
+2015-11-26  Paolo Bonzini <bonzini@gnu.org>
+
+       * doc/implement-c.texi (Integers Implementation): Make GCC's promises
+       about signed left shift stronger and clarify the cases when they're
+       broken.
+
 2015-11-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
             Bernd Schmidt  <bschmidt@redhat.com>
 
 
        * fold-const.c (fold_binary_loc) : Move (-A) * (-B) -> A * B
        to match.pd.
+* doc/implement-c.texi (Integers Implementation): Make GCC's promises
+about signed left shift stronger and clarify the cases when they're
+broken.
        Move (a * (1 << b)) is (a << b) to match.pd.
        Move convert (C1/X)*C2 into (C1*C2)/X to match.pd.
        Move ~X & X, (X == 0) & X, and !X & X are zero to match.pd.
index b8f8f29b54dac760a11012adaa44d11f034eb8e7..7fa3fb4087f7f91a286561b91f155554b8e275c2 100644 (file)
@@ -266,9 +266,11 @@ both the sign and value bits, where the sign bit is considered
 immediately above the highest-value value bit.  Signed @samp{>>} acts
 on negative numbers by sign extension.
 
-GCC does not use the latitude given in C99 and C11 only to treat certain
-aspects of signed @samp{<<} as undefined, but this is subject to
-change.
+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 @samp{<<} as undefined.
+However, @option{-fsanitize=shift} (and @option{-fsanitize=undefined}) will
+diagnose such cases.  They are also diagnosed where constant
+expressions are required.
 
 @item
 @cite{The sign of the remainder on integer division (C90 6.3.5).}