From: Kaveh R. Ghazi Date: Tue, 20 Mar 2001 23:51:46 +0000 (+0000) Subject: c-lex.c (yylex): With -Wtraditional... X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1c197220aecdeb6143087d78b168d50175797a96;p=thirdparty%2Fgcc.git c-lex.c (yylex): With -Wtraditional... 1999-11-30 Kaveh R. Ghazi * 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. From-SVN: r40680 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 190cc59ebc2b..921089dda7c4 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +Tue Mar 20 18:31:48 2001 Kaveh R. Ghazi + + 1999-11-30 Kaveh R. Ghazi + * 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 from 2000-07-12 Zack Weinberg diff --git a/gcc/c-lex.c b/gcc/c-lex.c index 27c65f3fa27f..8ee2fe40db36 100644 --- a/gcc/c-lex.c +++ b/gcc/c-lex.c @@ -1812,7 +1812,11 @@ yylex () 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)) diff --git a/gcc/invoke.texi b/gcc/invoke.texi index e97495e1b6c4..9865a3449ec9 100644 --- a/gcc/invoke.texi +++ b/gcc/invoke.texi @@ -1694,6 +1694,12 @@ A @code{switch} statement has an operand of type @code{long}. @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