comparison gcc/config/i386/msformat-c.c @ 55:77e2b8dfacca gcc-4.4.5

update it from 4.4.3 to 4.5.0
author ryoma <e075725@ie.u-ryukyu.ac.jp>
date Fri, 12 Feb 2010 23:39:51 +0900
parents a06113de4d67
children b7f97abdc517
comparison
equal deleted inserted replaced
52:c156f1bd5cd9 55:77e2b8dfacca
34 34
35 /* Mingw specific format attributes ms_printf, ms_scanf, and ms_strftime. */ 35 /* Mingw specific format attributes ms_printf, ms_scanf, and ms_strftime. */
36 36
37 static format_length_info ms_printf_length_specs[] = 37 static format_length_info ms_printf_length_specs[] =
38 { 38 {
39 { "h", FMT_LEN_h, STD_C89, NULL, 0, 0 }, 39 { "h", FMT_LEN_h, STD_C89, NULL, FMT_LEN_none, STD_C89, 0 },
40 { "l", FMT_LEN_l, STD_C89, NULL, 0, 0 }, 40 { "l", FMT_LEN_l, STD_C89, NULL, FMT_LEN_none, STD_C89, 0 },
41 { "I32", FMT_LEN_l, STD_EXT, NULL, 0, 0 }, 41 { "I32", FMT_LEN_l, STD_EXT, NULL, FMT_LEN_none, STD_C89, 1 },
42 { "I64", FMT_LEN_ll, STD_EXT, NULL, 0, 0 }, 42 { "I64", FMT_LEN_ll, STD_EXT, NULL, FMT_LEN_none, STD_C89, 1 },
43 { "I", FMT_LEN_L, STD_EXT, NULL, 0, 0 }, 43 { "I", FMT_LEN_L, STD_EXT, NULL, FMT_LEN_none, STD_C89, 0 },
44 { NULL, 0, 0, NULL, 0, 0 } 44 { NULL, FMT_LEN_none, STD_C89, NULL, FMT_LEN_none, STD_C89, 0 }
45 }; 45 };
46 46
47 static const format_flag_spec ms_printf_flag_specs[] = 47 static const format_flag_spec ms_printf_flag_specs[] =
48 { 48 {
49 { ' ', 0, 0, N_("' ' flag"), N_("the ' ' printf flag"), STD_C89 }, 49 { ' ', 0, 0, N_("' ' flag"), N_("the ' ' printf flag"), STD_C89 },
53 { '-', 0, 0, N_("'-' flag"), N_("the '-' printf flag"), STD_C89 }, 53 { '-', 0, 0, N_("'-' flag"), N_("the '-' printf flag"), STD_C89 },
54 { '\'', 0, 0, N_("''' flag"), N_("the ''' printf flag"), STD_EXT }, 54 { '\'', 0, 0, N_("''' flag"), N_("the ''' printf flag"), STD_EXT },
55 { 'w', 0, 0, N_("field width"), N_("field width in printf format"), STD_C89 }, 55 { 'w', 0, 0, N_("field width"), N_("field width in printf format"), STD_C89 },
56 { 'p', 0, 0, N_("precision"), N_("precision in printf format"), STD_C89 }, 56 { 'p', 0, 0, N_("precision"), N_("precision in printf format"), STD_C89 },
57 { 'L', 0, 0, N_("length modifier"), N_("length modifier in printf format"), STD_C89 }, 57 { 'L', 0, 0, N_("length modifier"), N_("length modifier in printf format"), STD_C89 },
58 { 0, 0, 0, NULL, NULL, 0 } 58 { 0, 0, 0, NULL, NULL, STD_C89 }
59 }; 59 };
60 60
61 static const format_flag_pair ms_printf_flag_pairs[] = 61 static const format_flag_pair ms_printf_flag_pairs[] =
62 { 62 {
63 { ' ', '+', 1, 0 }, 63 { ' ', '+', 1, 0 },
70 { '*', 0, 0, N_("assignment suppression"), N_("the assignment suppression scanf feature"), STD_C89 }, 70 { '*', 0, 0, N_("assignment suppression"), N_("the assignment suppression scanf feature"), STD_C89 },
71 { 'a', 0, 0, N_("'a' flag"), N_("the 'a' scanf flag"), STD_EXT }, 71 { 'a', 0, 0, N_("'a' flag"), N_("the 'a' scanf flag"), STD_EXT },
72 { 'w', 0, 0, N_("field width"), N_("field width in scanf format"), STD_C89 }, 72 { 'w', 0, 0, N_("field width"), N_("field width in scanf format"), STD_C89 },
73 { 'L', 0, 0, N_("length modifier"), N_("length modifier in scanf format"), STD_C89 }, 73 { 'L', 0, 0, N_("length modifier"), N_("length modifier in scanf format"), STD_C89 },
74 { '\'', 0, 0, N_("''' flag"), N_("the ''' scanf flag"), STD_EXT }, 74 { '\'', 0, 0, N_("''' flag"), N_("the ''' scanf flag"), STD_EXT },
75 { 0, 0, 0, NULL, NULL, 0 } 75 { 0, 0, 0, NULL, NULL, STD_C89 }
76 }; 76 };
77 77
78 static const format_flag_pair ms_scanf_flag_pairs[] = 78 static const format_flag_pair ms_scanf_flag_pairs[] =
79 { 79 {
80 { '*', 'L', 0, 0 }, 80 { '*', 'L', 0, 0 },
82 }; 82 };
83 83
84 static const format_flag_spec ms_strftime_flag_specs[] = 84 static const format_flag_spec ms_strftime_flag_specs[] =
85 { 85 {
86 { '#', 0, 0, N_("'#' flag"), N_("the '#' strftime flag"), STD_EXT }, 86 { '#', 0, 0, N_("'#' flag"), N_("the '#' strftime flag"), STD_EXT },
87 { 0, 0, 0, NULL, NULL, 0 } 87 { 0, 0, 0, NULL, NULL, STD_C89 }
88 }; 88 };
89 89
90 static const format_flag_pair ms_strftime_flag_pairs[] = 90 static const format_flag_pair ms_strftime_flag_pairs[] =
91 { 91 {
92 { 0, 0, 0, 0 } 92 { 0, 0, 0, 0 }
105 { "p", 1, STD_C89, { T89_V, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-w", "c", NULL }, 105 { "p", 1, STD_C89, { T89_V, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-w", "c", NULL },
106 { "n", 1, STD_C89, { T89_I, BADLEN, T89_S, T89_L, T9L_LL, BADLEN, BADLEN, BADLEN, T99_IM, BADLEN, BADLEN, BADLEN }, "", "W", NULL }, 106 { "n", 1, STD_C89, { T89_I, BADLEN, T89_S, T89_L, T9L_LL, BADLEN, BADLEN, BADLEN, T99_IM, BADLEN, BADLEN, BADLEN }, "", "W", NULL },
107 /* X/Open conversion specifiers. */ 107 /* X/Open conversion specifiers. */
108 { "C", 0, STD_EXT, { TEX_WI, BADLEN, T89_S, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-w", "", NULL }, 108 { "C", 0, STD_EXT, { TEX_WI, BADLEN, T89_S, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-w", "", NULL },
109 { "S", 1, STD_EXT, { TEX_W, BADLEN, T89_S, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "R", NULL }, 109 { "S", 1, STD_EXT, { TEX_W, BADLEN, T89_S, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "R", NULL },
110 { NULL, 0, 0, NOLENGTHS, NULL, NULL, NULL } 110 { NULL, 0, STD_C89, NOLENGTHS, NULL, NULL, NULL }
111 }; 111 };
112 112
113 static const format_char_info ms_scan_char_table[] = 113 static const format_char_info ms_scan_char_table[] =
114 { 114 {
115 /* C89 conversion specifiers. */ 115 /* C89 conversion specifiers. */
123 { "p", 2, STD_C89, { T89_V, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "*w", "W", NULL }, 123 { "p", 2, STD_C89, { T89_V, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "*w", "W", NULL },
124 { "n", 1, STD_C89, { T89_I, BADLEN, T89_S, T89_L, T9L_LL, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "", "W", NULL }, 124 { "n", 1, STD_C89, { T89_I, BADLEN, T89_S, T89_L, T9L_LL, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "", "W", NULL },
125 /* X/Open conversion specifiers. */ 125 /* X/Open conversion specifiers. */
126 { "C", 1, STD_EXT, { TEX_W, BADLEN, T89_S, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "*w", "W", NULL }, 126 { "C", 1, STD_EXT, { TEX_W, BADLEN, T89_S, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "*w", "W", NULL },
127 { "S", 1, STD_EXT, { TEX_W, BADLEN, T89_S, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "*aw", "W", NULL }, 127 { "S", 1, STD_EXT, { TEX_W, BADLEN, T89_S, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "*aw", "W", NULL },
128 { NULL, 0, 0, NOLENGTHS, NULL, NULL, NULL } 128 { NULL, 0, STD_C89, NOLENGTHS, NULL, NULL, NULL }
129 }; 129 };
130 130
131 static const format_char_info ms_time_char_table[] = 131 static const format_char_info ms_time_char_table[] =
132 { 132 {
133 /* C89 conversion specifiers. */ 133 /* C89 conversion specifiers. */
140 { "y", 0, STD_C89, NOLENGTHS, "#", "4", NULL }, 140 { "y", 0, STD_C89, NOLENGTHS, "#", "4", NULL },
141 { "Y", 0, STD_C89, NOLENGTHS, "#", "", NULL }, 141 { "Y", 0, STD_C89, NOLENGTHS, "#", "", NULL },
142 { "%", 0, STD_C89, NOLENGTHS, "", "", NULL }, 142 { "%", 0, STD_C89, NOLENGTHS, "", "", NULL },
143 /* C99 conversion specifiers. */ 143 /* C99 conversion specifiers. */
144 { "z", 0, STD_C99, NOLENGTHS, "#", "", NULL }, 144 { "z", 0, STD_C99, NOLENGTHS, "#", "", NULL },
145 { NULL, 0, 0, NOLENGTHS, NULL, NULL, NULL } 145 { NULL, 0, STD_C89, NOLENGTHS, NULL, NULL, NULL }
146 }; 146 };
147 147
148 const format_kind_info mingw_format_attributes[3] = 148 EXPORTED_CONST format_kind_info mingw_format_attributes[3] =
149 { 149 {
150 { "ms_printf", ms_printf_length_specs, ms_print_char_table, " +#0-'", NULL, 150 { "ms_printf", ms_printf_length_specs, ms_print_char_table, " +#0-'", NULL,
151 ms_printf_flag_specs, ms_printf_flag_pairs, 151 ms_printf_flag_specs, ms_printf_flag_pairs,
152 FMT_FLAG_ARG_CONVERT|FMT_FLAG_DOLLAR_MULTIPLE|FMT_FLAG_USE_DOLLAR|FMT_FLAG_EMPTY_PREC_OK, 152 FMT_FLAG_ARG_CONVERT|FMT_FLAG_DOLLAR_MULTIPLE|FMT_FLAG_USE_DOLLAR|FMT_FLAG_EMPTY_PREC_OK,
153 'w', 0, 'p', 0, 'L', 0, 153 'w', 0, 'p', 0, 'L', 0,
165 NULL, NULL 165 NULL, NULL
166 } 166 }
167 }; 167 };
168 168
169 /* Default overrides for printf, scanf and strftime. */ 169 /* Default overrides for printf, scanf and strftime. */
170 const target_ovr_attr mingw_format_attribute_overrides[4] = 170 EXPORTED_CONST target_ovr_attr mingw_format_attribute_overrides[4] =
171 { 171 {
172 { "ms_printf", "printf" }, 172 { "ms_printf", "printf" },
173 { "ms_scanf", "scanf" }, 173 { "ms_scanf", "scanf" },
174 { "ms_strftime", "strftime" } 174 { "ms_strftime", "strftime" }
175 }; 175 };