+Tue Mar 20 18:31:48 2001 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ 1999-11-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+ * c-lex.c (yylex): With -Wtraditional, when the ANSI type of an
+ integer constant does not match the traditional type, limit the
+ warnings to cases where the base of the type is ten.
+
+ * invoke.texi (-Wtraditional): Document it.
+
2001-03-20 David O'Brien <obrien@FreeBSD.org>
from 2000-07-12 Zack Weinberg <zack@wolery.cumb.org>
type = flag_traditional ? traditional_type : ansi_type;
- if (warn_traditional && traditional_type != ansi_type)
+ /* We assume that constants specified in a non-decimal
+ base are bit patterns, and that the programmer really
+ meant what they wrote. */
+ if (warn_traditional && base == 10
+ && traditional_type != ansi_type)
{
if (TYPE_PRECISION (traditional_type)
!= TYPE_PRECISION (ansi_type))
@item
A non-@code{static} function declaration follows a @code{static} one.
This construct is not accepted by some traditional C compilers.
+
+@item
+The ANSI type of an integer constant has a different width or signedness
+from its traditional type. This warning is only issued if the base of
+the constant is ten. I.e. hexadecimal or octal values, which typically
+represent bit patterns, are not warned about.
@end itemize
@item -Wundef