[llvm-commits] [llvm-gcc-4.2] r50427 - in /llvm-gcc-4.2/trunk/gcc: c-format.c c-format.h config.gcc config/i386/msformat-c.c config/i386/t-cygming doc/extend.texi doc/tm.texi

Anton Korobeynikov asl at math.spbu.ru
Tue Apr 29 09:42:52 PDT 2008


Author: asl
Date: Tue Apr 29 11:42:52 2008
New Revision: 50427

URL: http://llvm.org/viewvc/llvm-project?rev=50427&view=rev
Log:
Temporary revert ms-format patch

Removed:
    llvm-gcc-4.2/trunk/gcc/config/i386/msformat-c.c
Modified:
    llvm-gcc-4.2/trunk/gcc/c-format.c
    llvm-gcc-4.2/trunk/gcc/c-format.h
    llvm-gcc-4.2/trunk/gcc/config.gcc
    llvm-gcc-4.2/trunk/gcc/config/i386/t-cygming
    llvm-gcc-4.2/trunk/gcc/doc/extend.texi
    llvm-gcc-4.2/trunk/gcc/doc/tm.texi

Modified: llvm-gcc-4.2/trunk/gcc/c-format.c
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/c-format.c?rev=50427&r1=50426&r2=50427&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/c-format.c (original)
+++ llvm-gcc-4.2/trunk/gcc/c-format.c Tue Apr 29 11:42:52 2008
@@ -63,13 +63,13 @@
 		   gcc_diag_format_type, gcc_tdiag_format_type,
 		   gcc_cdiag_format_type,
 		   gcc_cxxdiag_format_type, gcc_gfc_format_type,
+		   scanf_format_type, strftime_format_type,
 		   /* APPLE LOCAL begin radar 4985544 */
-		   nsstring_format_type,
-		   /* APPLE LOCAL end radar 4985544 */
-		   /* APPLE LOCAL begin radar 5096648 */
-		   cfstring_format_type,
-		   /* APPLE LOCAL end radar 5096648 */
+		   strfmon_format_type, nsstring_format_type,
+                   /* APPLE LOCAL radar 5096648 */
+                   cfstring_format_type,
 		   format_type_error = -1};
+		   /* APPLE LOCAL end radar 4985544 */
 
 typedef struct function_format_info
 {
@@ -87,10 +87,6 @@
 static bool get_constant (tree expr, unsigned HOST_WIDE_INT *value,
 			  int validated_p);
 
-/* LLVM LOCAL begin mainline */
-static const char *convert_format_name_to_system_name (const char *attr_name);
-static bool cmp_attribs (const char *tattr_name, const char *attr_name);
-/* LLVM LOCAL end mainline */
 
 /* Handle a "format_arg" attribute; arguments as in
    struct attribute_spec.handler.  */
@@ -213,10 +209,6 @@
     {
       const char *p = IDENTIFIER_POINTER (format_type_id);
 
-      /* LLVM LOCAL begin mainline */
-      p = convert_format_name_to_system_name (p);
-      /* LLVM LOCAL end mainline */
-
       info->format_type = decode_format_type (p);
 
       /* APPLE LOCAL begin radar 4985544 */
@@ -733,9 +725,7 @@
 /* This must be in the same order as enum format_type.  */
 static const format_kind_info format_types_orig[] =
 {
-  /* LLVM LOCAL begin mainline */
-  { "gnu_printf",   printf_length_specs,  print_char_table, " +#0-'I", NULL,
-  /* LLVM LOCAL end mainline */
+  { "printf",   printf_length_specs,  print_char_table, " +#0-'I", NULL,
     printf_flag_specs, printf_flag_pairs,
     FMT_FLAG_ARG_CONVERT|FMT_FLAG_DOLLAR_MULTIPLE|FMT_FLAG_USE_DOLLAR|FMT_FLAG_EMPTY_PREC_OK,
     'w', 0, 'p', 0, 'L',
@@ -777,29 +767,23 @@
     0, 0, 0, 0, 0,
     NULL, NULL
   },
-  /* LLVM LOCAL begin mainline */
-  { "gnu_scanf",    scanf_length_specs,   scan_char_table,  "*'I", NULL,
-  /* LLVM LOCAL end mainline */
+  { "scanf",    scanf_length_specs,   scan_char_table,  "*'I", NULL,
     scanf_flag_specs, scanf_flag_pairs,
     FMT_FLAG_ARG_CONVERT|FMT_FLAG_SCANF_A_KLUDGE|FMT_FLAG_USE_DOLLAR|FMT_FLAG_ZERO_WIDTH_BAD|FMT_FLAG_DOLLAR_GAP_POINTER_OK,
     'w', 0, 0, '*', 'L',
     NULL, NULL
   },
-  /* LLVM LOCAL begin mainline */
-  { "gnu_strftime", NULL,                 time_char_table,  "_-0^#", "EO",
-  /* LLVM LOCAL end mainline */
+  { "strftime", NULL,                 time_char_table,  "_-0^#", "EO",
     strftime_flag_specs, strftime_flag_pairs,
     FMT_FLAG_FANCY_PERCENT_OK, 'w', 0, 0, 0, 0,
     NULL, NULL
   },
-  /* LLVM LOCAL begin mainline */
-  { "gnu_strfmon",  strfmon_length_specs, monetary_char_table, "=^+(!-", NULL,
-  /* LLVM LOCAL end mainline */
+  { "strfmon",  strfmon_length_specs, monetary_char_table, "=^+(!-", NULL,
     strfmon_flag_specs, strfmon_flag_pairs,
     FMT_FLAG_ARG_CONVERT, 'w', '#', 'p', 0, 'L',
     NULL, NULL
+/* APPLE LOCAL begin radar 4985544 */
   },
-  /* APPLE LOCAL begin radar 4985544 */
   { "NSString",   NULL,  NULL, NULL, NULL,
     NULL, NULL,
     FMT_FLAG_ARG_CONVERT, 0, 0, 0, 0, 0,
@@ -887,10 +871,6 @@
 {
   int i;
   int slen;
-
-  /* LLVM LOCAL begin mainline */
-  s = convert_format_name_to_system_name (s);
-  /* LLVM LOCAL end mainline */
   slen = strlen (s);
   for (i = 0; i < n_format_types; i++)
     {
@@ -1825,25 +1805,8 @@
       length_chars_std = STD_C89;
       if (fli)
 	{
-	  /* LLVM LOCAL begin mainline */
 	  while (fli->name != 0 && fli->name[0] != *format_chars)
-	    {
-	      if (fli->name[0] == '\0')
-		{
-		  int si  = strlen (fli->name + 1) + 1;
-		  int i = 1;
-		  while (fli->name[i] != 0 && fli->name[i] == format_chars [i - 1])
-		    ++i;
-		 if (si == i)
-		   {
-		     if (si > 2)
-		       format_chars += si - 2;
-		     break;
-		   }
-	       }
-	      fli++;
-	    }
-	  /* LLVM LOCAL end mainline */
+	    fli++;
 	  if (fli->name != 0)
 	    {
 	      format_chars++;
@@ -2785,86 +2748,6 @@
 extern const format_kind_info TARGET_FORMAT_TYPES[];
 #endif
 
-/* LLVM LOCAL begin mainline */
-#ifdef TARGET_OVERRIDES_FORMAT_ATTRIBUTES
-extern const target_ovr_attr TARGET_OVERRIDES_FORMAT_ATTRIBUTES[];
-#endif
-
-/* Attributes such as "printf" are equivalent to those such as
-   "gnu_printf" unless this is overridden by a target.  */
-static const target_ovr_attr gnu_target_overrides_format_attributes[] =
-{
-  { "gnu_printf",   "printf" },
-  { "gnu_scanf",    "scanf" },
-  { "gnu_strftime", "strftime" },
-  { "gnu_strfmon",  "strfmon" },
-  { NULL,           NULL }
-};
-
-/* Translate to unified attribute name. This is used in decode_format_type and
-   decode_format_attr. In attr_name the user specified argument is passed. It
-   returns the unified format name from TARGET_OVERRIDES_FORMAT_ATTRIBUTES
-   or the attr_name passed to this function, if there is no matching entry.  */
-static const char *
-convert_format_name_to_system_name (const char *attr_name)
-{
-  int i;
-
-  if (attr_name == NULL || *attr_name == 0
-      || strncmp (attr_name, "gcc_", 4) == 0)
-    return attr_name;
-
-#ifdef TARGET_OVERRIDES_FORMAT_ATTRIBUTES
-  /* Check if format attribute is overridden by target.  */
-  if (TARGET_OVERRIDES_FORMAT_ATTRIBUTES != NULL
-      && TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT > 0)
-    {
-      for (i = 0; i < TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT; ++i)
-        {
-          if (cmp_attribs (TARGET_OVERRIDES_FORMAT_ATTRIBUTES[i].named_attr_src,
-			   attr_name))
-            return attr_name;
-          if (cmp_attribs (TARGET_OVERRIDES_FORMAT_ATTRIBUTES[i].named_attr_dst,
-			   attr_name))
-            return TARGET_OVERRIDES_FORMAT_ATTRIBUTES[i].named_attr_src;
-        }
-    }
-#endif
-  /* Otherwise default to gnu format.  */
-  for (i = 0;
-       gnu_target_overrides_format_attributes[i].named_attr_src != NULL;
-       ++i)
-    {
-      if (cmp_attribs (gnu_target_overrides_format_attributes[i].named_attr_src,
-		       attr_name))
-        return attr_name;
-      if (cmp_attribs (gnu_target_overrides_format_attributes[i].named_attr_dst,
-		       attr_name))
-        return gnu_target_overrides_format_attributes[i].named_attr_src;
-    }
-
-  return attr_name;
-}
-
-/* Return true if TATTR_NAME and ATTR_NAME are the same format attribute,
-   counting "name" and "__name__" as the same, false otherwise.  */
-static bool
-cmp_attribs (const char *tattr_name, const char *attr_name)
-{
-  int alen = strlen (attr_name);
-  int slen = (tattr_name ? strlen (tattr_name) : 0);
-  if (alen > 4 && attr_name[0] == '_' && attr_name[1] == '_'
-      && attr_name[alen - 1] == '_' && attr_name[alen - 2] == '_')
-    {
-      attr_name += 2;
-      alen -= 4;
-    }
-  if (alen != slen || strncmp (tattr_name, attr_name, alen) != 0)
-    return false;
-  return true;
-}
-/* LLVM LOCAL end mainline */
-
 /* Handle a "format" attribute; arguments as in
    struct attribute_spec.handler.  */
 tree
@@ -2939,12 +2822,7 @@
 	}
     }
 
-  /* LLVM LOCAL begin mainline */
-  /* Check if this is a strftime variant. Just for this variant
-     FMT_FLAG_ARG_CONVERT is not set.  */
-  if ((format_types[info.format_type].flags & (int) FMT_FLAG_ARG_CONVERT) == 0
-      && info.first_arg_num != 0)
-  /* LLVM LOCAL end mainline */
+  if (info.format_type == strftime_format_type && info.first_arg_num != 0)
     {
       error ("strftime formats cannot format arguments");
       *no_add_attrs = true;

Modified: llvm-gcc-4.2/trunk/gcc/c-format.h
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/c-format.h?rev=50427&r1=50426&r2=50427&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/c-format.h (original)
+++ llvm-gcc-4.2/trunk/gcc/c-format.h Tue Apr 29 11:42:52 2008
@@ -81,15 +81,12 @@
      of whether length modifiers can occur (length_char_specs).  */
 };
 
+
 /* Structure describing a length modifier supported in format checking, and
    possibly a doubled version such as "hh".  */
 typedef struct
 {
-  /* LLVM LOCAL begin mainline */
-  /* Name of the single-character length modifier. If prefixed by
-     a zero character, it describes a multi character length
-     modifier, like I64, I32, etc.  */
-  /* LLVM LOCAL end mainline */
+  /* Name of the single-character length modifier.  */
   const char *name;
   /* Index into a format_char_info.types array.  */
   enum format_lengths index;
@@ -308,18 +305,4 @@
 #define T_D128  &dfloat128_type_node
 #define TEX_D128 { STD_EXT, "_Decimal128", T_D128 }
 
-/* LLVM LOCAL begin mainline */
-/* Structure describing how format attributes such as "printf" are
-   interpreted as "gnu_printf" or "ms_printf" on a particular system.
-   TARGET_OVERRIDES_FORMAT_ATTRIBUTES is used to specify target-specific
-   defaults.  */
-typedef struct
-{
-  /* The name of the to be copied format attribute. */
-  const char *named_attr_src;
-  /* The name of the to be overridden format attribute. */
-  const char *named_attr_dst;
-} target_ovr_attr;
-/* LLVM LOCAL end mainline */
-
 #endif /* GCC_C_FORMAT_H */

Modified: llvm-gcc-4.2/trunk/gcc/config.gcc
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/config.gcc?rev=50427&r1=50426&r2=50427&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/config.gcc (original)
+++ llvm-gcc-4.2/trunk/gcc/config.gcc Tue Apr 29 11:42:52 2008
@@ -1326,8 +1326,8 @@
 	extra_options="${extra_options} i386/cygming.opt"
 	extra_objs="winnt.o winnt-stubs.o"
 # LLVM LOCAL begin mainline
-	c_target_objs="cygwin2.o msformat-c.o"
-	cxx_target_objs="cygwin2.o winnt-cxx.o msformat-c.o"
+	c_target_objs="cygwin2.o"
+	cxx_target_objs="cygwin2.o winnt-cxx.o"
 # LLVM LOCAL end mainline
 	extra_gcc_objs=cygwin1.o
 	extra_parts="crtbegin.o crtend.o"
@@ -1345,8 +1345,7 @@
 	extra_options="${extra_options} i386/cygming.opt"
 	extra_objs="winnt.o winnt-stubs.o"
 # LLVM LOCAL begin mainline
-	c_target_objs="msformat-c.o"
-	cxx_target_objs="winnt-cxx.o msformat-c.o"
+	cxx_target_objs="winnt-cxx.o"
 	default_use_cxa_atexit=yes
 # LLVM LOCAL end mainline
 	extra_parts="crtbegin.o crtend.o"

Removed: llvm-gcc-4.2/trunk/gcc/config/i386/msformat-c.c
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/config/i386/msformat-c.c?rev=50426&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/config/i386/msformat-c.c (original)
+++ llvm-gcc-4.2/trunk/gcc/config/i386/msformat-c.c (removed)
@@ -1,175 +0,0 @@
-/* Check calls to formatted I/O functions (-Wformat).
-   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
-   2001, 2002, 2003, 2004, 2005, 2007 Free Software Foundation, Inc.
-
-This file is part of GCC.
-
-GCC is free software; you can redistribute it and/or modify it under
-the terms of the GNU General Public License as published by the Free
-Software Foundation; either version 3, or (at your option) any later
-version.
-
-GCC is distributed in the hope that it will be useful, but WITHOUT ANY
-WARRANTY; without even the implied warranty of MERCHANTABILITY or
-FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-for more details.
-
-You should have received a copy of the GNU General Public License
-along with GCC; see the file COPYING3.  If not see
-<http://www.gnu.org/licenses/>.  */
-
-#include "config.h"
-#include "system.h"
-#include "coretypes.h"
-#include "tm.h"
-#include "tree.h"
-#include "flags.h"
-#include "c-common.h"
-#include "toplev.h"
-#include "intl.h"
-#include "diagnostic.h"
-#include "langhooks.h"
-#include "c-format.h"
-#include "alloc-pool.h"
-
-/* Mingw specific format attributes ms_printf, ms_scanf, and ms_strftime.  */
-
-static const format_length_info ms_printf_length_specs[] =
-{
-  { "h", FMT_LEN_h, STD_C89, NULL, 0, 0 },
-  { "l", FMT_LEN_l, STD_C89, NULL, 0, 0 },
-  { "I32", FMT_LEN_l, STD_EXT, NULL, 0, 0 },
-  { "I64", FMT_LEN_ll, STD_EXT, NULL, 0, 0 },
-  { "I", FMT_LEN_L, STD_EXT, NULL, 0, 0 },
-  { NULL, 0, 0, NULL, 0, 0 }
-};
-
-static const format_flag_spec ms_printf_flag_specs[] =
-{
-  { ' ',  0, 0, N_("' ' flag"),        N_("the ' ' printf flag"),              STD_C89 },
-  { '+',  0, 0, N_("'+' flag"),        N_("the '+' printf flag"),              STD_C89 },
-  { '#',  0, 0, N_("'#' flag"),        N_("the '#' printf flag"),              STD_C89 },
-  { '0',  0, 0, N_("'0' flag"),        N_("the '0' printf flag"),              STD_C89 },
-  { '-',  0, 0, N_("'-' flag"),        N_("the '-' printf flag"),              STD_C89 },
-  { '\'', 0, 0, N_("''' flag"),        N_("the ''' printf flag"),              STD_EXT },
-  { 'w',  0, 0, N_("field width"),     N_("field width in printf format"),     STD_C89 },
-  { 'p',  0, 0, N_("precision"),       N_("precision in printf format"),       STD_C89 },
-  { 'L',  0, 0, N_("length modifier"), N_("length modifier in printf format"), STD_C89 },
-  { 0, 0, 0, NULL, NULL, 0 }
-};
-
-static const format_flag_pair ms_printf_flag_pairs[] =
-{
-  { ' ', '+', 1, 0   },
-  { '0', '-', 1, 0   }, { '0', 'p', 1, 'i' },
-  { 0, 0, 0, 0 }
-};
-
-static const format_flag_spec ms_scanf_flag_specs[] =
-{
-  { '*',  0, 0, N_("assignment suppression"), N_("the assignment suppression scanf feature"), STD_C89 },
-  { 'a',  0, 0, N_("'a' flag"),               N_("the 'a' scanf flag"),                       STD_EXT },
-  { 'w',  0, 0, N_("field width"),            N_("field width in scanf format"),              STD_C89 },
-  { 'L',  0, 0, N_("length modifier"),        N_("length modifier in scanf format"),          STD_C89 },
-  { '\'', 0, 0, N_("''' flag"),               N_("the ''' scanf flag"),                       STD_EXT },
-  { 0, 0, 0, NULL, NULL, 0 }
-};
-
-static const format_flag_pair ms_scanf_flag_pairs[] =
-{
-  { '*', 'L', 0, 0 },
-  { 0, 0, 0, 0 }
-};
-
-static const format_flag_spec ms_strftime_flag_specs[] =
-{
-  { '#', 0,   0, N_("'#' flag"),     N_("the '#' strftime flag"),          STD_EXT },
-  { 0, 0, 0, NULL, NULL, 0 }
-};
-
-static const format_flag_pair ms_strftime_flag_pairs[] =
-{
-  { 0, 0, 0, 0 }
-};
-
-static const format_char_info ms_print_char_table[] =
-{
-  /* C89 conversion specifiers.  */
-  { "di",  0, STD_C89, { T89_I,   BADLEN,  T89_S,   T89_L,   T9L_LL,  T99_SST,  BADLEN, BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN  }, "-wp0 +'",  "i",  NULL },
-  { "oxX", 0, STD_C89, { T89_UI,  BADLEN,  T89_US,  T89_UL,  T9L_ULL, T99_ST, BADLEN, BADLEN, BADLEN, BADLEN,  BADLEN,  BADLEN }, "-wp0#",     "i",  NULL },
-  { "u",   0, STD_C89, { T89_UI,  BADLEN,  T89_US,  T89_UL,  T9L_ULL, T99_ST, BADLEN, BADLEN, BADLEN, BADLEN,  BADLEN,  BADLEN }, "-wp0'",    "i",  NULL },
-  { "fgG", 0, STD_C89, { T89_D,   BADLEN,  BADLEN,  T99_D,   BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN, BADLEN, BADLEN }, "-wp0 +#'", "",   NULL },
-  { "eE",  0, STD_C89, { T89_D,   BADLEN,  BADLEN,  T99_D,   BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN, BADLEN, BADLEN }, "-wp0 +#",  "",   NULL },
-  { "c",   0, STD_C89, { T89_I,   BADLEN,  T89_S,  T94_WI,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN }, "-w",        "",   NULL },
-  { "s",   1, STD_C89, { T89_C,   BADLEN,  T89_S,  T94_W,   BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN }, "-wp",       "cR", NULL },
-  { "p",   1, STD_C89, { T89_V,   BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN }, "-w",        "c",  NULL },
-  { "n",   1, STD_C89, { T89_I,   BADLEN,  T89_S,   T89_L,   T9L_LL,  BADLEN,  BADLEN, BADLEN,  T99_IM,  BADLEN,  BADLEN,  BADLEN }, "",          "W",  NULL },
-  /* X/Open conversion specifiers.  */
-  { "C",   0, STD_EXT, { TEX_WI,  BADLEN,  T89_S,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN }, "-w",        "",   NULL },
-  { "S",   1, STD_EXT, { TEX_W,   BADLEN,  T89_S,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN }, "-wp",       "R",  NULL },
-  { NULL,  0, 0, NOLENGTHS, NULL, NULL, NULL }
-};
-
-static const format_char_info ms_scan_char_table[] =
-{
-  /* C89 conversion specifiers.  */
-  { "di",    1, STD_C89, { T89_I,   BADLEN,  T89_S,   T89_L,   T9L_LL,  T99_SST,  BADLEN, BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN }, "*w'", "W",   NULL },
-  { "u",     1, STD_C89, { T89_UI,  BADLEN,  T89_US,  T89_UL,  T9L_ULL, T99_ST, BADLEN,  BADLEN, BADLEN, BADLEN,  BADLEN,  BADLEN }, "*w'", "W",   NULL },
-  { "oxX",   1, STD_C89, { T89_UI,  BADLEN,  T89_US,  T89_UL,  T9L_ULL, T99_ST, BADLEN,  BADLEN, BADLEN, BADLEN,  BADLEN,  BADLEN }, "*w",   "W",   NULL },
-  { "efgEG", 1, STD_C89, { T89_F,   BADLEN,  BADLEN,  T89_D,   BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN, BADLEN, BADLEN }, "*w'",  "W",   NULL },
-  { "c",     1, STD_C89, { T89_C,   BADLEN,  T89_S,  T94_W,   BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN }, "*w",   "cW",  NULL },
-  { "s",     1, STD_C89, { T89_C,   BADLEN,  T89_S,  T94_W,   BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN }, "*aw",  "cW",  NULL },
-  { "[",     1, STD_C89, { T89_C,   BADLEN,  BADLEN,  T94_W,   BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN }, "*aw",  "cW[", NULL },
-  { "p",     2, STD_C89, { T89_V,   BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN }, "*w",   "W",   NULL },
-  { "n",     1, STD_C89, { T89_I,   BADLEN,  T89_S,   T89_L,   T9L_LL,  BADLEN,  BADLEN, BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN }, "",     "W",   NULL },
-  /* X/Open conversion specifiers.  */
-  { "C",     1, STD_EXT, { TEX_W,   BADLEN,  T89_S,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN }, "*w",   "W",   NULL },
-  { "S",     1, STD_EXT, { TEX_W,   BADLEN,  T89_S,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN }, "*aw",  "W",   NULL },
-  { NULL, 0, 0, NOLENGTHS, NULL, NULL, NULL }
-};
-
-static const format_char_info ms_time_char_table[] =
-{
-  /* C89 conversion specifiers.  */
-  { "ABZab",		0, STD_C89, NOLENGTHS, "#",     "",   NULL },
-  { "cx",		0, STD_C89, NOLENGTHS, "#",      "3",  NULL },
-  { "HIMSUWdmw",	0, STD_C89, NOLENGTHS, "#",  "",   NULL },
-  { "j",		0, STD_C89, NOLENGTHS, "#",  "",  NULL },
-  { "p",		0, STD_C89, NOLENGTHS, "#",      "",   NULL },
-  { "X",		0, STD_C89, NOLENGTHS, "#",      "",   NULL },
-  { "y",		0, STD_C89, NOLENGTHS, "#", "4",  NULL },
-  { "Y",		0, STD_C89, NOLENGTHS, "#", "",  NULL },
-  { "%",		0, STD_C89, NOLENGTHS, "",       "",   NULL },
-  /* C99 conversion specifiers.  */
-  { "z",		0, STD_C99, NOLENGTHS, "#",      "",  NULL },
-  { NULL,		0, 0, NOLENGTHS, NULL, NULL, NULL }
-};
-
-const format_kind_info mingw_format_attributes[3] =
-{
-  { "ms_printf",   ms_printf_length_specs,  ms_print_char_table, " +#0-'", NULL,
-    ms_printf_flag_specs, ms_printf_flag_pairs,
-    FMT_FLAG_ARG_CONVERT|FMT_FLAG_DOLLAR_MULTIPLE|FMT_FLAG_USE_DOLLAR|FMT_FLAG_EMPTY_PREC_OK,
-    'w', 0, 'p', 0, 'L',
-    &integer_type_node, &integer_type_node
-  },
-  { "ms_scanf",    ms_printf_length_specs,   ms_scan_char_table,  "*'", NULL,
-    ms_scanf_flag_specs, ms_scanf_flag_pairs,
-    FMT_FLAG_ARG_CONVERT|FMT_FLAG_SCANF_A_KLUDGE|FMT_FLAG_USE_DOLLAR|FMT_FLAG_ZERO_WIDTH_BAD|FMT_FLAG_DOLLAR_GAP_POINTER_OK,
-    'w', 0, 0, '*', 'L',
-    NULL, NULL
-  },
-  { "ms_strftime", NULL,                 ms_time_char_table,  "", "#",
-    ms_strftime_flag_specs, ms_strftime_flag_pairs,
-    FMT_FLAG_FANCY_PERCENT_OK, 0, 0, 0, 0, 0,
-    NULL, NULL
-  }
-};
-
-/* Default overrides for printf, scanf and strftime.  */
-const target_ovr_attr mingw_format_attribute_overrides[4] =
-{
-  { "ms_printf", "printf" },
-  { "ms_scanf", "scanf" },
-  { "ms_strftime", "strftime" }
-};

Modified: llvm-gcc-4.2/trunk/gcc/config/i386/t-cygming
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/config/i386/t-cygming?rev=50427&r1=50426&r2=50427&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/config/i386/t-cygming (original)
+++ llvm-gcc-4.2/trunk/gcc/config/i386/t-cygming Tue Apr 29 11:42:52 2008
@@ -29,14 +29,6 @@
 	$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
 	$(srcdir)/config/i386/winnt-stubs.c
 
-# LLVM LOCAL begin mainline
-msformat-c.o: $(srcdir)/config/i386/msformat-c.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
-  $(TM_H) $(RTL_H) $(REGS_H) hard-reg-set.h output.h $(TREE_H) flags.h \
-  $(TM_P_H) toplev.h $(HASHTAB_H) $(GGC_H)
-	$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
-	$(srcdir)/config/i386/msformat-c.c
-# LLVM LOCAL end mainline
-
 STMP_FIXINC=stmp-fixinc
 
 # LLVM LOCAL begin mainline 125696

Modified: llvm-gcc-4.2/trunk/gcc/doc/extend.texi
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/doc/extend.texi?rev=50427&r1=50426&r2=50427&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/doc/extend.texi (original)
+++ llvm-gcc-4.2/trunk/gcc/doc/extend.texi Tue Apr 29 11:42:52 2008
@@ -1914,31 +1914,20 @@
 for consistency with the @code{printf} style format string argument
 @code{my_format}.
 
- at c LLVM LOCAL begin mainline
 The parameter @var{archetype} determines how the format string is
-interpreted, and should be @code{printf}, @code{scanf}, @code{strftime},
- at code{gnu_printf}, @code{gnu_scanf}, @code{gnu_strftime} or
- at code{strfmon}.  (You can also use @code{__printf__},
- at code{__scanf__}, @code{__strftime__} or @code{__strfmon__}.)  On
-MinGW targets, @code{ms_printf}, @code{ms_scanf}, and
- at code{ms_strftime} are also present.
- at var{archtype} values such as @code{printf} refer to the formats accepted
-by the system's C run-time library, while @code{gnu_} values always refer
-to the formats accepted by the GNU C Library.  On Microsoft Windows
-targets, @code{ms_} values refer to the formats accepted by the
- at file{msvcrt.dll} library.
-The parameter @var{string-index}
-specifies which argument is the format string argument (starting
-from 1), while @var{first-to-check} is the number of the first
-argument to check against the format string.  For functions
-where the arguments are not available to be checked (such as
+interpreted, and should be @code{printf}, @code{scanf}, @code{strftime}
+or @code{strfmon}.  (You can also use @code{__printf__},
+ at code{__scanf__}, @code{__strftime__} or @code{__strfmon__}.)  The
+parameter @var{string-index} specifies which argument is the format
+string argument (starting from 1), while @var{first-to-check} is the
+number of the first argument to check against the format string.  For
+functions where the arguments are not available to be checked (such as
 @code{vprintf}), specify the third parameter as zero.  In this case the
 compiler only checks the format string for consistency.  For
 @code{strftime} formats, the third parameter is required to be zero.
 Since non-static C++ methods have an implicit @code{this} argument, the
 arguments of such methods should be counted from two, not one, when
 giving values for @var{string-index} and @var{first-to-check}.
- at c LLVM LOCAL end mainline
 
 In the example above, the format string (@code{my_format}) is the second
 argument of the function @code{my_print}, and the arguments to check

Modified: llvm-gcc-4.2/trunk/gcc/doc/tm.texi
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/doc/tm.texi?rev=50427&r1=50426&r2=50427&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/doc/tm.texi (original)
+++ llvm-gcc-4.2/trunk/gcc/doc/tm.texi Tue Apr 29 11:42:52 2008
@@ -9944,20 +9944,6 @@
 @code{TARGET_FORMAT_TYPES}.
 @end defmac
 
- at c LLVM LOCAL begin mainline
- at defmac TARGET_OVERRIDES_FORMAT_ATTRIBUTES
-If defined, this macro is the name of a global variable containing
-target-specific format overrides for the @option{-Wformat} option. The
-default is to have no target-specific format overrides. If defined,
- at code{TARGET_FORMAT_TYPES} must be defined, too.
- at end defmac
-
- at defmac TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT
-If defined, this macro specifies the number of entries in
- at code{TARGET_OVERRIDES_FORMAT_ATTRIBUTES}.
- at end defmac
- at c LLVM LOCAL end mainline
-
 @deftypefn {Target Hook} bool TARGET_RELAXED_ORDERING
 If set to @code{true}, means that the target's memory model does not
 guarantee that loads which do not depend on one another will access





More information about the llvm-commits mailing list