[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