OSDN Git Service

* c-lex.c (yylex): With -Wtraditional, when the ANSI type of an
authorghazi <ghazi@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 30 Nov 1999 23:26:37 +0000 (23:26 +0000)
committerghazi <ghazi@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 30 Nov 1999 23:26:37 +0000 (23:26 +0000)
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@30730 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/c-lex.c
gcc/invoke.texi

index b77d214..e0a454b 100644 (file)
@@ -1,3 +1,11 @@
+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.
+
 Tue Nov 30 15:18:35 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
 
        * combine.c (try_combine): Only pass SET or CLOBBER to SET_DEST
index ab71f78..d4710a8 100644 (file)
@@ -1901,7 +1901,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))
index 567c2a2..f1b0649 100644 (file)
@@ -1692,6 +1692,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