* c-common.c (check_format_info): Do not make a pedantic objection
authorlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 17 Jul 2000 08:31:15 +0000 (08:31 +0000)
committerlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 17 Jul 2000 08:31:15 +0000 (08:31 +0000)
to the 'L' length modifier if used with a floating point type
character.

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

gcc/ChangeLog
gcc/c-common.c

index eb2e7b1..ec19678 100644 (file)
@@ -1,5 +1,9 @@
 2000-07-17  Joseph S. Myers  <jsm28@cam.ac.uk>
 
+       * c-common.c (check_format_info): Do not make a pedantic objection
+       to the 'L' length modifier if used with a floating point type
+       character.
+
        * c-lex.c (yylex): Don't pedwarn for hexadecimal floating point
        constants in C99 mode.
 
index f72ec47..8a8103b 100644 (file)
@@ -1780,7 +1780,7 @@ check_format_info (info, params)
          else if (*format_chars == 'q' || *format_chars == 'L')
            {
              length_char = *format_chars++;
-             if (pedantic)
+             if (length_char == 'q' && pedantic)
                warning ("ANSI C does not support the `%c' length modifier",
                         length_char);
            }
@@ -1936,6 +1936,13 @@ check_format_info (info, params)
       if (wanted_type == 0)
        warning ("use of `%c' length character with `%c' type character",
                 length_char, format_char);
+      else if (length_char == 'L' && pedantic
+              && !(format_char == 'a' || format_char == 'A'
+                   || format_char == 'e' || format_char == 'E'
+                   || format_char == 'f' || format_char == 'F'
+                   || format_char == 'g' || format_char == 'G'))
+       warning ("ANSI C does not support the `L' length modifier with the `%c' type character",
+                format_char);
 
       /* Finally. . .check type of argument against desired type!  */
       if (info->first_arg_num == 0)