c-format.c (print_char_table): Allow 'I' flag on floating point decimal formats.
authorJoseph Myers <jsm@polyomino.org.uk>
Sat, 20 Dec 2003 00:00:39 +0000 (00:00 +0000)
committerJoseph Myers <jsm28@gcc.gnu.org>
Sat, 20 Dec 2003 00:00:39 +0000 (00:00 +0000)
* c-format.c (print_char_table): Allow 'I' flag on floating point
decimal formats.

testsuite:
* gcc.dg/format/ext-1.c: Allow 'I' flag on floating point decimal
formats.

From-SVN: r74860

gcc/ChangeLog
gcc/c-format.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/format/ext-1.c

index c761cccf53bac4ef09c2470e0100128ba9cf3302..da213a32708bb9f4709505b8a3ffd4b159c9617b 100644 (file)
@@ -1,3 +1,8 @@
+2003-12-19  Joseph S. Myers  <jsm@polyomino.org.uk>
+
+       * c-format.c (print_char_table): Allow 'I' flag on floating point
+       decimal formats.
+
 2003-12-19  Stuart Hastings  <stuart@apple.com>
        * gcc/config/i386/i386.c (ix86_expand_call, x86_output_mi_thunk):
        Trivial fixes for i386.c on Darwin/x86.
index 269be1795dbe30d1321fa6fbd766e2a6d481a439..a532259750c48099ae5637bf1200d319494a1181 100644 (file)
@@ -755,23 +755,23 @@ static const format_flag_pair strfmon_flag_pairs[] =
 static const format_char_info print_char_table[] =
 {
   /* C89 conversion specifiers.  */
-  { "di",  0, STD_C89, { T89_I,   T99_SC,  T89_S,   T89_L,   T9L_LL,  TEX_LL,  T99_SST, T99_PD,  T99_IM  }, "-wp0 +'I", "i"  },
-  { "oxX", 0, STD_C89, { T89_UI,  T99_UC,  T89_US,  T89_UL,  T9L_ULL, TEX_ULL, T99_ST,  T99_UPD, T99_UIM }, "-wp0#",    "i"  },
-  { "u",   0, STD_C89, { T89_UI,  T99_UC,  T89_US,  T89_UL,  T9L_ULL, TEX_ULL, T99_ST,  T99_UPD, T99_UIM }, "-wp0'I",   "i"  },
-  { "fgG", 0, STD_C89, { T89_D,   BADLEN,  BADLEN,  T99_D,   BADLEN,  T89_LD,  BADLEN,  BADLEN,  BADLEN  }, "-wp0 +#'", ""   },
-  { "eE",  0, STD_C89, { T89_D,   BADLEN,  BADLEN,  T99_D,   BADLEN,  T89_LD,  BADLEN,  BADLEN,  BADLEN  }, "-wp0 +#",  ""   },
-  { "c",   0, STD_C89, { T89_I,   BADLEN,  BADLEN,  T94_WI,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN  }, "-w",       ""   },
-  { "s",   1, STD_C89, { T89_C,   BADLEN,  BADLEN,  T94_W,   BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN  }, "-wp",      "cR" },
-  { "p",   1, STD_C89, { T89_V,   BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN  }, "-w",       "c"  },
-  { "n",   1, STD_C89, { T89_I,   T99_SC,  T89_S,   T89_L,   T9L_LL,  BADLEN,  T99_SST, T99_PD,  T99_IM  }, "",         "W"  },
+  { "di",  0, STD_C89, { T89_I,   T99_SC,  T89_S,   T89_L,   T9L_LL,  TEX_LL,  T99_SST, T99_PD,  T99_IM  }, "-wp0 +'I",  "i"  },
+  { "oxX", 0, STD_C89, { T89_UI,  T99_UC,  T89_US,  T89_UL,  T9L_ULL, TEX_ULL, T99_ST,  T99_UPD, T99_UIM }, "-wp0#",     "i"  },
+  { "u",   0, STD_C89, { T89_UI,  T99_UC,  T89_US,  T89_UL,  T9L_ULL, TEX_ULL, T99_ST,  T99_UPD, T99_UIM }, "-wp0'I",    "i"  },
+  { "fgG", 0, STD_C89, { T89_D,   BADLEN,  BADLEN,  T99_D,   BADLEN,  T89_LD,  BADLEN,  BADLEN,  BADLEN  }, "-wp0 +#'I", ""   },
+  { "eE",  0, STD_C89, { T89_D,   BADLEN,  BADLEN,  T99_D,   BADLEN,  T89_LD,  BADLEN,  BADLEN,  BADLEN  }, "-wp0 +#I",  ""   },
+  { "c",   0, STD_C89, { T89_I,   BADLEN,  BADLEN,  T94_WI,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN  }, "-w",        ""   },
+  { "s",   1, STD_C89, { T89_C,   BADLEN,  BADLEN,  T94_W,   BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN  }, "-wp",       "cR" },
+  { "p",   1, STD_C89, { T89_V,   BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN  }, "-w",        "c"  },
+  { "n",   1, STD_C89, { T89_I,   T99_SC,  T89_S,   T89_L,   T9L_LL,  BADLEN,  T99_SST, T99_PD,  T99_IM  }, "",          "W"  },
   /* C99 conversion specifiers.  */
-  { "F",   0, STD_C99, { T99_D,   BADLEN,  BADLEN,  T99_D,   BADLEN,  T99_LD,  BADLEN,  BADLEN,  BADLEN  }, "-wp0 +#'", ""   },
-  { "aA",  0, STD_C99, { T99_D,   BADLEN,  BADLEN,  T99_D,   BADLEN,  T99_LD,  BADLEN,  BADLEN,  BADLEN  }, "-wp0 +#",  ""   },
+  { "F",   0, STD_C99, { T99_D,   BADLEN,  BADLEN,  T99_D,   BADLEN,  T99_LD,  BADLEN,  BADLEN,  BADLEN  }, "-wp0 +#'I", ""   },
+  { "aA",  0, STD_C99, { T99_D,   BADLEN,  BADLEN,  T99_D,   BADLEN,  T99_LD,  BADLEN,  BADLEN,  BADLEN  }, "-wp0 +#",   ""   },
   /* X/Open conversion specifiers.  */
-  { "C",   0, STD_EXT, { TEX_WI,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN  }, "-w",       ""   },
-  { "S",   1, STD_EXT, { TEX_W,   BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN  }, "-wp",      "R"  },
+  { "C",   0, STD_EXT, { TEX_WI,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN  }, "-w",        ""   },
+  { "S",   1, STD_EXT, { TEX_W,   BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN  }, "-wp",       "R"  },
   /* GNU conversion specifiers.  */
-  { "m",   0, STD_EXT, { T89_V,   BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN  }, "-wp",      ""   },
+  { "m",   0, STD_EXT, { T89_V,   BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN  }, "-wp",       ""   },
   { NULL,  0, 0, NOLENGTHS, NULL, NULL }
 };
 
index dd131336e9386e5e6f29826f4674eb4501f77820..bb7bce642a765793bf255f5077ff8f266cfe80ac 100644 (file)
@@ -1,3 +1,8 @@
+2003-12-19  Joseph S. Myers  <jsm@polyomino.org.uk>
+
+       * gcc.dg/format/ext-1.c: Allow 'I' flag on floating point decimal
+       formats.
+
 2003-12-19  Mark Mitchell  <mark@codesourcery.com>
 
        PR c++/12795
index e69e756085cf5f438efb354815acbebb98b2f0d8..3b020892afd22f9f0f1325728602c1f168d04dd9 100644 (file)
@@ -92,7 +92,7 @@ foo (quad_t q, u_quad_t uq, quad_t *qn, size_t z, size_t *zn, long long int ll,
   */
   printf ("%*2$.*1$m", i, i);
   printf ("%1$*2$.*1$m", i, i); /* { dg-warning "no argument" "printf %1\$m" } */
-  /* As an extension, glibc includes the "I" flag for decimal integer
+  /* As an extension, glibc includes the "I" flag for decimal
      formats, to output using the locale's digits (e.g. in Arabic).
      In GCC, we require this to be in the standard place for flags, though
      glibc allows it also after width or precision.
@@ -102,12 +102,12 @@ foo (quad_t q, u_quad_t uq, quad_t *qn, size_t z, size_t *zn, long long int ll,
   printf ("%Ix", u); /* { dg-warning "flag" "bad use of I flag" } */
   printf ("%IX", u); /* { dg-warning "flag" "bad use of I flag" } */
   printf ("%In", n); /* { dg-warning "flag" "bad use of I flag" } */
-  printf ("%If", d); /* { dg-warning "flag" "bad use of I flag" } */
-  printf ("%IF", d); /* { dg-warning "flag" "bad use of I flag" } */
-  printf ("%Ie", d); /* { dg-warning "flag" "bad use of I flag" } */
-  printf ("%IE", d); /* { dg-warning "flag" "bad use of I flag" } */
-  printf ("%Ig", d); /* { dg-warning "flag" "bad use of I flag" } */
-  printf ("%IG", d); /* { dg-warning "flag" "bad use of I flag" } */
+  printf ("%If", d);
+  printf ("%IF", d);
+  printf ("%Ie", d);
+  printf ("%IE", d);
+  printf ("%Ig", d);
+  printf ("%IG", d);
   printf ("%Ia", d); /* { dg-warning "flag" "bad use of I flag" } */
   printf ("%IA", d); /* { dg-warning "flag" "bad use of I flag" } */
   printf ("%Ic", i); /* { dg-warning "flag" "bad use of I flag" } */