Mercurial > hg > CbC > CbC_gcc
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 }; |