Line | Source | Count |
1 | | - |
2 | | - |
3 | | - |
4 | | - |
5 | | - |
6 | | - |
7 | | - |
8 | | - |
9 | | - |
10 | | - |
11 | | - |
12 | | - |
13 | | - |
14 | int | - |
15 | printf_parse (const char *format, char_directives *d, arguments *a) | - |
16 | { | - |
17 | const char *cp = format; | - |
18 | size_t arg_posn = 0; | - |
19 | size_t d_allocated; | - |
20 | size_t a_allocated; | - |
21 | size_t max_width_length = 0; | - |
22 | size_t max_precision_length = 0; | - |
23 | | - |
24 | d->count = 0; | - |
25 | d_allocated = 7; | - |
26 | d->dir = d->direct_alloc_dir; | - |
27 | | - |
28 | a->count = 0; | - |
29 | a_allocated = 7; | - |
30 | a->arg = a->direct_alloc_arg; | - |
31 | while (*TRUE | never evaluated | FALSE | never evaluated |
cp != '\0'TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
32 | { | - |
33 | char c = *cp++; | - |
34 | if (c == '%'TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
35 | { | - |
36 | size_t arg_index = (~(size_t)0); | - |
37 | char_directive *dp = &d->dir[d->count]; | - |
38 | | - |
39 | | - |
40 | dp->dir_start = cp - 1; | - |
41 | dp->flags = 0; | - |
42 | dp->width_start = | - |
43 | ((void *)0) | - |
44 | ; | - |
45 | dp->width_end = | - |
46 | ((void *)0) | - |
47 | ; | - |
48 | dp->width_arg_index = (~(size_t)0); | - |
49 | dp->precision_start = | - |
50 | ((void *)0) | - |
51 | ; | - |
52 | dp->precision_end = | - |
53 | ((void *)0) | - |
54 | ; | - |
55 | dp->precision_arg_index = (~(size_t)0); | - |
56 | dp->arg_index = (~(size_t)0); | - |
57 | | - |
58 | | - |
59 | if (*TRUE | never evaluated | FALSE | never evaluated |
cp >= '0'TRUE | never evaluated | FALSE | never evaluated |
&& *TRUE | never evaluated | FALSE | never evaluated |
cp <= '9'TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
60 | { | - |
61 | const char *np; | - |
62 | | - |
63 | for (np = cp; *TRUE | never evaluated | FALSE | never evaluated |
np >= '0'TRUE | never evaluated | FALSE | never evaluated |
&& *TRUE | never evaluated | FALSE | never evaluated |
np <= '9'TRUE | never evaluated | FALSE | never evaluated |
; np++) | 0 |
64 | ; never executed: ; | 0 |
65 | if (*TRUE | never evaluated | FALSE | never evaluated |
np == '$'TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
66 | { | - |
67 | size_t n = 0; | - |
68 | | - |
69 | for (np = cp; *TRUE | never evaluated | FALSE | never evaluated |
np >= '0'TRUE | never evaluated | FALSE | never evaluated |
&& *TRUE | never evaluated | FALSE | never evaluated |
np <= '9'TRUE | never evaluated | FALSE | never evaluated |
; np++) | 0 |
70 | n = xsum (((n) <= never executed: n = xsum (((n) <= (18446744073709551615UL) / (10) ? (size_t) (n) * (10) : (18446744073709551615UL) ), *np - '0'); | 0 |
71 | (18446744073709551615UL) never executed: n = xsum (((n) <= (18446744073709551615UL) / (10) ? (size_t) (n) * (10) : (18446744073709551615UL) ), *np - '0'); | 0 |
72 | / (10) ? (size_t) (n) * (10) : never executed: n = xsum (((n) <= (18446744073709551615UL) / (10) ? (size_t) (n) * (10) : (18446744073709551615UL) ), *np - '0'); | 0 |
73 | (18446744073709551615UL) never executed: n = xsum (((n) <= (18446744073709551615UL) / (10) ? (size_t) (n) * (10) : (18446744073709551615UL) ), *np - '0'); | 0 |
74 | ), *np - '0'); never executed: n = xsum (((n) <= (18446744073709551615UL) / (10) ? (size_t) (n) * (10) : (18446744073709551615UL) ), *np - '0'); | 0 |
75 | if (n == 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
76 | | - |
77 | goto never executed: goto error; error;never executed: goto error; | 0 |
78 | if (((TRUE | never evaluated | FALSE | never evaluated |
n) == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
79 | (18446744073709551615UL)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
80 | )TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
81 | | - |
82 | goto never executed: goto error; error;never executed: goto error; | 0 |
83 | arg_index = n - 1; | - |
84 | cp = np + 1; | - |
85 | } never executed: end of block | 0 |
86 | } never executed: end of block | 0 |
87 | | - |
88 | | - |
89 | for (;;) | - |
90 | { | - |
91 | if (*TRUE | never evaluated | FALSE | never evaluated |
cp == '\''TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
92 | { | - |
93 | dp->flags |= 1; | - |
94 | cp++; | - |
95 | } never executed: end of block | 0 |
96 | else if (*TRUE | never evaluated | FALSE | never evaluated |
cp == '-'TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
97 | { | - |
98 | dp->flags |= 2; | - |
99 | cp++; | - |
100 | } never executed: end of block | 0 |
101 | else if (*TRUE | never evaluated | FALSE | never evaluated |
cp == '+'TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
102 | { | - |
103 | dp->flags |= 4; | - |
104 | cp++; | - |
105 | } never executed: end of block | 0 |
106 | else if (*TRUE | never evaluated | FALSE | never evaluated |
cp == ' 'TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
107 | { | - |
108 | dp->flags |= 8; | - |
109 | cp++; | - |
110 | } never executed: end of block | 0 |
111 | else if (*TRUE | never evaluated | FALSE | never evaluated |
cp == '#'TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
112 | { | - |
113 | dp->flags |= 16; | - |
114 | cp++; | - |
115 | } never executed: end of block | 0 |
116 | else if (*TRUE | never evaluated | FALSE | never evaluated |
cp == '0'TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
117 | { | - |
118 | dp->flags |= 32; | - |
119 | cp++; | - |
120 | } never executed: end of block | 0 |
121 | | - |
122 | else if (*TRUE | never evaluated | FALSE | never evaluated |
cp == 'I'TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
123 | { | - |
124 | dp->flags |= 64; | - |
125 | cp++; | - |
126 | } never executed: end of block | 0 |
127 | | - |
128 | else | - |
129 | break; never executed: break; | 0 |
130 | } | - |
131 | | - |
132 | | - |
133 | if (*TRUE | never evaluated | FALSE | never evaluated |
cp == '*'TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
134 | { | - |
135 | dp->width_start = cp; | - |
136 | cp++; | - |
137 | dp->width_end = cp; | - |
138 | if (max_width_length < 1TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
139 | max_width_length = 1; never executed: max_width_length = 1; | 0 |
140 | | - |
141 | | - |
142 | if (*TRUE | never evaluated | FALSE | never evaluated |
cp >= '0'TRUE | never evaluated | FALSE | never evaluated |
&& *TRUE | never evaluated | FALSE | never evaluated |
cp <= '9'TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
143 | { | - |
144 | const char *np; | - |
145 | | - |
146 | for (np = cp; *TRUE | never evaluated | FALSE | never evaluated |
np >= '0'TRUE | never evaluated | FALSE | never evaluated |
&& *TRUE | never evaluated | FALSE | never evaluated |
np <= '9'TRUE | never evaluated | FALSE | never evaluated |
; np++) | 0 |
147 | ; never executed: ; | 0 |
148 | if (*TRUE | never evaluated | FALSE | never evaluated |
np == '$'TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
149 | { | - |
150 | size_t n = 0; | - |
151 | | - |
152 | for (np = cp; *TRUE | never evaluated | FALSE | never evaluated |
np >= '0'TRUE | never evaluated | FALSE | never evaluated |
&& *TRUE | never evaluated | FALSE | never evaluated |
np <= '9'TRUE | never evaluated | FALSE | never evaluated |
; np++) | 0 |
153 | n = xsum (((n) <= never executed: n = xsum (((n) <= (18446744073709551615UL) / (10) ? (size_t) (n) * (10) : (18446744073709551615UL) ), *np - '0'); | 0 |
154 | (18446744073709551615UL) never executed: n = xsum (((n) <= (18446744073709551615UL) / (10) ? (size_t) (n) * (10) : (18446744073709551615UL) ), *np - '0'); | 0 |
155 | / (10) ? (size_t) (n) * (10) : never executed: n = xsum (((n) <= (18446744073709551615UL) / (10) ? (size_t) (n) * (10) : (18446744073709551615UL) ), *np - '0'); | 0 |
156 | (18446744073709551615UL) never executed: n = xsum (((n) <= (18446744073709551615UL) / (10) ? (size_t) (n) * (10) : (18446744073709551615UL) ), *np - '0'); | 0 |
157 | ), *np - '0'); never executed: n = xsum (((n) <= (18446744073709551615UL) / (10) ? (size_t) (n) * (10) : (18446744073709551615UL) ), *np - '0'); | 0 |
158 | if (n == 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
159 | | - |
160 | goto never executed: goto error; error;never executed: goto error; | 0 |
161 | if (((TRUE | never evaluated | FALSE | never evaluated |
n) == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
162 | (18446744073709551615UL)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
163 | )TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
164 | | - |
165 | goto never executed: goto error; error;never executed: goto error; | 0 |
166 | dp->width_arg_index = n - 1; | - |
167 | cp = np + 1; | - |
168 | } never executed: end of block | 0 |
169 | } never executed: end of block | 0 |
170 | if (dp->width_arg_index == (~(size_t)0)TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
171 | { | - |
172 | dp->width_arg_index = arg_posn++; | - |
173 | if (dp->width_arg_index == (~(size_t)0)TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
174 | | - |
175 | goto never executed: goto error; error;never executed: goto error; | 0 |
176 | } never executed: end of block | 0 |
177 | { size_t n = (dp->width_arg_index); if (n >= a_allocatedTRUE | never evaluated | FALSE | never evaluated |
) { size_t memory_size; argument *memory; a_allocated = ((TRUE | never evaluated | FALSE | never evaluated |
a_allocated) <= TRUE | never evaluated | FALSE | never evaluated |
| 0 |
178 | (18446744073709551615UL) TRUE | never evaluated | FALSE | never evaluated |
| 0 |
179 | / (2)TRUE | never evaluated | FALSE | never evaluated |
? (size_t) (a_allocated) * (2) : | 0 |
180 | (18446744073709551615UL) | - |
181 | ); if (a_allocated <= nTRUE | never evaluated | FALSE | never evaluated |
) a_allocated = xsum (n, 1);never executed: a_allocated = xsum (n, 1); memory_size = ((TRUE | never evaluated | FALSE | never evaluated |
a_allocated) <= TRUE | never evaluated | FALSE | never evaluated |
| 0 |
182 | (18446744073709551615UL) TRUE | never evaluated | FALSE | never evaluated |
| 0 |
183 | / (sizeof (argument))TRUE | never evaluated | FALSE | never evaluated |
? (size_t) (a_allocated) * (sizeof (argument)) : | 0 |
184 | (18446744073709551615UL) | - |
185 | ); if (((TRUE | never evaluated | FALSE | never evaluated |
memory_size) == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
186 | (18446744073709551615UL)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
187 | )TRUE | never evaluated | FALSE | never evaluated |
) gotonever executed: goto out_of_memory; out_of_memory;never executed: goto out_of_memory; memory = (argument *) (a->arg != a->direct_alloc_arg ? realloc (a->arg, memory_size) : malloc (memory_size)); if (memory == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
188 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
189 | ) goto never executed: goto out_of_memory; out_of_memory;never executed: goto out_of_memory; if (a->arg == a->direct_alloc_argTRUE | never evaluated | FALSE | never evaluated |
) memcpy (memory, a->arg, a->count * sizeof (argument));never executed: memcpy (memory, a->arg, a->count * sizeof (argument)); a->arg = memory; }never executed: end of block while (a->count <= nTRUE | never evaluated | FALSE | never evaluated |
) a->arg[a->count++].type = TYPE_NONE;never executed: a->arg[a->count++].type = TYPE_NONE; if (a->arg[n].type == TYPE_NONETRUE | never evaluated | FALSE | never evaluated |
) a->arg[n].type = (TYPE_INT);never executed: a->arg[n].type = (TYPE_INT); else if (a->arg[n].type != (TYPE_INT)TRUE | never evaluated | FALSE | never evaluated |
) gotonever executed: goto error; error;never executed: goto error; }; | 0 |
190 | } never executed: end of block | 0 |
191 | else if (*TRUE | never evaluated | FALSE | never evaluated |
cp >= '0'TRUE | never evaluated | FALSE | never evaluated |
&& *TRUE | never evaluated | FALSE | never evaluated |
cp <= '9'TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
192 | { | - |
193 | size_t width_length; | - |
194 | | - |
195 | dp->width_start = cp; | - |
196 | for (; *TRUE | never evaluated | FALSE | never evaluated |
cp >= '0'TRUE | never evaluated | FALSE | never evaluated |
&& *TRUE | never evaluated | FALSE | never evaluated |
cp <= '9'TRUE | never evaluated | FALSE | never evaluated |
; cp++) | 0 |
197 | ; never executed: ; | 0 |
198 | dp->width_end = cp; | - |
199 | width_length = dp->width_end - dp->width_start; | - |
200 | if (max_width_length < width_lengthTRUE | never evaluated | FALSE | never evaluated |
) | 0 |
201 | max_width_length = width_length; never executed: max_width_length = width_length; | 0 |
202 | } never executed: end of block | 0 |
203 | | - |
204 | | - |
205 | if (*TRUE | never evaluated | FALSE | never evaluated |
cp == '.'TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
206 | { | - |
207 | cp++; | - |
208 | if (*TRUE | never evaluated | FALSE | never evaluated |
cp == '*'TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
209 | { | - |
210 | dp->precision_start = cp - 1; | - |
211 | cp++; | - |
212 | dp->precision_end = cp; | - |
213 | if (max_precision_length < 2TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
214 | max_precision_length = 2; never executed: max_precision_length = 2; | 0 |
215 | | - |
216 | | - |
217 | if (*TRUE | never evaluated | FALSE | never evaluated |
cp >= '0'TRUE | never evaluated | FALSE | never evaluated |
&& *TRUE | never evaluated | FALSE | never evaluated |
cp <= '9'TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
218 | { | - |
219 | const char *np; | - |
220 | | - |
221 | for (np = cp; *TRUE | never evaluated | FALSE | never evaluated |
np >= '0'TRUE | never evaluated | FALSE | never evaluated |
&& *TRUE | never evaluated | FALSE | never evaluated |
np <= '9'TRUE | never evaluated | FALSE | never evaluated |
; np++) | 0 |
222 | ; never executed: ; | 0 |
223 | if (*TRUE | never evaluated | FALSE | never evaluated |
np == '$'TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
224 | { | - |
225 | size_t n = 0; | - |
226 | | - |
227 | for (np = cp; *TRUE | never evaluated | FALSE | never evaluated |
np >= '0'TRUE | never evaluated | FALSE | never evaluated |
&& *TRUE | never evaluated | FALSE | never evaluated |
np <= '9'TRUE | never evaluated | FALSE | never evaluated |
; np++) | 0 |
228 | n = xsum (((n) <= never executed: n = xsum (((n) <= (18446744073709551615UL) / (10) ? (size_t) (n) * (10) : (18446744073709551615UL) ), *np - '0'); | 0 |
229 | (18446744073709551615UL) never executed: n = xsum (((n) <= (18446744073709551615UL) / (10) ? (size_t) (n) * (10) : (18446744073709551615UL) ), *np - '0'); | 0 |
230 | / (10) ? (size_t) (n) * (10) : never executed: n = xsum (((n) <= (18446744073709551615UL) / (10) ? (size_t) (n) * (10) : (18446744073709551615UL) ), *np - '0'); | 0 |
231 | (18446744073709551615UL) never executed: n = xsum (((n) <= (18446744073709551615UL) / (10) ? (size_t) (n) * (10) : (18446744073709551615UL) ), *np - '0'); | 0 |
232 | ), *np - '0'); never executed: n = xsum (((n) <= (18446744073709551615UL) / (10) ? (size_t) (n) * (10) : (18446744073709551615UL) ), *np - '0'); | 0 |
233 | if (n == 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
234 | | - |
235 | goto never executed: goto error; error;never executed: goto error; | 0 |
236 | if (((TRUE | never evaluated | FALSE | never evaluated |
n) == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
237 | (18446744073709551615UL)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
238 | )TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
239 | | - |
240 | | - |
241 | goto never executed: goto error; error;never executed: goto error; | 0 |
242 | dp->precision_arg_index = n - 1; | - |
243 | cp = np + 1; | - |
244 | } never executed: end of block | 0 |
245 | } never executed: end of block | 0 |
246 | if (dp->precision_arg_index == (~(size_t)0)TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
247 | { | - |
248 | dp->precision_arg_index = arg_posn++; | - |
249 | if (dp->precision_arg_index == (~(size_t)0)TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
250 | | - |
251 | goto never executed: goto error; error;never executed: goto error; | 0 |
252 | } never executed: end of block | 0 |
253 | { size_t n = (dp->precision_arg_index); if (n >= a_allocatedTRUE | never evaluated | FALSE | never evaluated |
) { size_t memory_size; argument *memory; a_allocated = ((TRUE | never evaluated | FALSE | never evaluated |
a_allocated) <= TRUE | never evaluated | FALSE | never evaluated |
| 0 |
254 | (18446744073709551615UL) TRUE | never evaluated | FALSE | never evaluated |
| 0 |
255 | / (2)TRUE | never evaluated | FALSE | never evaluated |
? (size_t) (a_allocated) * (2) : | 0 |
256 | (18446744073709551615UL) | - |
257 | ); if (a_allocated <= nTRUE | never evaluated | FALSE | never evaluated |
) a_allocated = xsum (n, 1);never executed: a_allocated = xsum (n, 1); memory_size = ((TRUE | never evaluated | FALSE | never evaluated |
a_allocated) <= TRUE | never evaluated | FALSE | never evaluated |
| 0 |
258 | (18446744073709551615UL) TRUE | never evaluated | FALSE | never evaluated |
| 0 |
259 | / (sizeof (argument))TRUE | never evaluated | FALSE | never evaluated |
? (size_t) (a_allocated) * (sizeof (argument)) : | 0 |
260 | (18446744073709551615UL) | - |
261 | ); if (((TRUE | never evaluated | FALSE | never evaluated |
memory_size) == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
262 | (18446744073709551615UL)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
263 | )TRUE | never evaluated | FALSE | never evaluated |
) gotonever executed: goto out_of_memory; out_of_memory;never executed: goto out_of_memory; memory = (argument *) (a->arg != a->direct_alloc_arg ? realloc (a->arg, memory_size) : malloc (memory_size)); if (memory == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
264 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
265 | ) goto never executed: goto out_of_memory; out_of_memory;never executed: goto out_of_memory; if (a->arg == a->direct_alloc_argTRUE | never evaluated | FALSE | never evaluated |
) memcpy (memory, a->arg, a->count * sizeof (argument));never executed: memcpy (memory, a->arg, a->count * sizeof (argument)); a->arg = memory; }never executed: end of block while (a->count <= nTRUE | never evaluated | FALSE | never evaluated |
) a->arg[a->count++].type = TYPE_NONE;never executed: a->arg[a->count++].type = TYPE_NONE; if (a->arg[n].type == TYPE_NONETRUE | never evaluated | FALSE | never evaluated |
) a->arg[n].type = (TYPE_INT);never executed: a->arg[n].type = (TYPE_INT); else if (a->arg[n].type != (TYPE_INT)TRUE | never evaluated | FALSE | never evaluated |
) gotonever executed: goto error; error;never executed: goto error; }; | 0 |
266 | } never executed: end of block | 0 |
267 | else | - |
268 | { | - |
269 | size_t precision_length; | - |
270 | | - |
271 | dp->precision_start = cp - 1; | - |
272 | for (; *TRUE | never evaluated | FALSE | never evaluated |
cp >= '0'TRUE | never evaluated | FALSE | never evaluated |
&& *TRUE | never evaluated | FALSE | never evaluated |
cp <= '9'TRUE | never evaluated | FALSE | never evaluated |
; cp++) | 0 |
273 | ; never executed: ; | 0 |
274 | dp->precision_end = cp; | - |
275 | precision_length = dp->precision_end - dp->precision_start; | - |
276 | if (max_precision_length < precision_lengthTRUE | never evaluated | FALSE | never evaluated |
) | 0 |
277 | max_precision_length = precision_length; never executed: max_precision_length = precision_length; | 0 |
278 | } never executed: end of block | 0 |
279 | } | - |
280 | | - |
281 | { | - |
282 | arg_type type; | - |
283 | | - |
284 | | - |
285 | { | - |
286 | int flags = 0; | - |
287 | | - |
288 | for (;;) | - |
289 | { | - |
290 | if (*TRUE | never evaluated | FALSE | never evaluated |
cp == 'h'TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
291 | { | - |
292 | flags |= (1 << (flags & 1)); | - |
293 | cp++; | - |
294 | } never executed: end of block | 0 |
295 | else if (*TRUE | never evaluated | FALSE | never evaluated |
cp == 'L'TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
296 | { | - |
297 | flags |= 4; | - |
298 | cp++; | - |
299 | } never executed: end of block | 0 |
300 | else if (*TRUE | never evaluated | FALSE | never evaluated |
cp == 'l'TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
301 | { | - |
302 | flags += 8; | - |
303 | cp++; | - |
304 | } never executed: end of block | 0 |
305 | else if (*TRUE | never evaluated | FALSE | never evaluated |
cp == 'j'TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
306 | { | - |
307 | if (sizeof (intmax_t) > sizeof (long)TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
308 | { | - |
309 | | - |
310 | flags += 16; | - |
311 | } never executed: end of block | 0 |
312 | else if (sizeof (intmax_t) > sizeof (int)TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
313 | { | - |
314 | | - |
315 | flags += 8; | - |
316 | } never executed: end of block | 0 |
317 | cp++; | - |
318 | } never executed: end of block | 0 |
319 | else if (*TRUE | never evaluated | FALSE | never evaluated |
cp == 'z'TRUE | never evaluated | FALSE | never evaluated |
|| *TRUE | never evaluated | FALSE | never evaluated |
cp == 'Z'TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
320 | { | - |
321 | | - |
322 | | - |
323 | | - |
324 | if (sizeof (size_t) > sizeof (long)TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
325 | { | - |
326 | | - |
327 | flags += 16; | - |
328 | } never executed: end of block | 0 |
329 | else if (sizeof (size_t) > sizeof (int)TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
330 | { | - |
331 | | - |
332 | flags += 8; | - |
333 | } never executed: end of block | 0 |
334 | cp++; | - |
335 | } never executed: end of block | 0 |
336 | else if (*TRUE | never evaluated | FALSE | never evaluated |
cp == 't'TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
337 | { | - |
338 | if (sizeof (ptrdiff_t) > sizeof (long)TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
339 | { | - |
340 | | - |
341 | flags += 16; | - |
342 | } never executed: end of block | 0 |
343 | else if (sizeof (ptrdiff_t) > sizeof (int)TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
344 | { | - |
345 | | - |
346 | flags += 8; | - |
347 | } never executed: end of block | 0 |
348 | cp++; | - |
349 | } never executed: end of block | 0 |
350 | else | - |
351 | break; never executed: break; | 0 |
352 | } | - |
353 | | - |
354 | | - |
355 | c = *cp++; | - |
356 | switch (c) | - |
357 | { | - |
358 | case never executed: case 'd': 'd':never executed: case 'd': casenever executed: case 'i': 'i':never executed: case 'i': | 0 |
359 | | - |
360 | | - |
361 | if (flags >= 16TRUE | never evaluated | FALSE | never evaluated |
|| (TRUE | never evaluated | FALSE | never evaluated |
flags & 4)TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
362 | type = TYPE_LONGLONGINT; never executed: type = TYPE_LONGLONGINT; | 0 |
363 | else | - |
364 | | - |
365 | | - |
366 | | - |
367 | if (flags >= 8TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
368 | type = TYPE_LONGINT; never executed: type = TYPE_LONGINT; | 0 |
369 | else if (flags & 2TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
370 | type = TYPE_SCHAR; never executed: type = TYPE_SCHAR; | 0 |
371 | else if (flags & 1TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
372 | type = TYPE_SHORT; never executed: type = TYPE_SHORT; | 0 |
373 | else | - |
374 | type = TYPE_INT; never executed: type = TYPE_INT; | 0 |
375 | break; never executed: break; | 0 |
376 | case never executed: case 'o': 'o':never executed: case 'o': casenever executed: case 'u': 'u':never executed: case 'u': casenever executed: case 'x': 'x':never executed: case 'x': casenever executed: case 'X': 'X':never executed: case 'X': | 0 |
377 | | - |
378 | | - |
379 | if (flags >= 16TRUE | never evaluated | FALSE | never evaluated |
|| (TRUE | never evaluated | FALSE | never evaluated |
flags & 4)TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
380 | type = TYPE_ULONGLONGINT; never executed: type = TYPE_ULONGLONGINT; | 0 |
381 | else | - |
382 | | - |
383 | | - |
384 | | - |
385 | if (flags >= 8TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
386 | type = TYPE_ULONGINT; never executed: type = TYPE_ULONGINT; | 0 |
387 | else if (flags & 2TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
388 | type = TYPE_UCHAR; never executed: type = TYPE_UCHAR; | 0 |
389 | else if (flags & 1TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
390 | type = TYPE_USHORT; never executed: type = TYPE_USHORT; | 0 |
391 | else | - |
392 | type = TYPE_UINT; never executed: type = TYPE_UINT; | 0 |
393 | break; never executed: break; | 0 |
394 | case never executed: case 'f': 'f':never executed: case 'f': casenever executed: case 'F': 'F':never executed: case 'F': casenever executed: case 'e': 'e':never executed: case 'e': casenever executed: case 'E': 'E':never executed: case 'E': casenever executed: case 'g': 'g':never executed: case 'g': casenever executed: case 'G': 'G':never executed: case 'G': | 0 |
395 | case never executed: case 'a': 'a':never executed: case 'a': casenever executed: case 'A': 'A':never executed: case 'A': | 0 |
396 | if (flags >= 16TRUE | never evaluated | FALSE | never evaluated |
|| (TRUE | never evaluated | FALSE | never evaluated |
flags & 4)TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
397 | type = TYPE_LONGDOUBLE; never executed: type = TYPE_LONGDOUBLE; | 0 |
398 | else | - |
399 | type = TYPE_DOUBLE; never executed: type = TYPE_DOUBLE; | 0 |
400 | break; never executed: break; | 0 |
401 | case never executed: case 'c': 'c':never executed: case 'c': | 0 |
402 | if (flags >= 8TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
403 | | - |
404 | type = TYPE_WIDE_CHAR; never executed: type = TYPE_WIDE_CHAR; | 0 |
405 | | - |
406 | | - |
407 | | - |
408 | else | - |
409 | type = TYPE_CHAR; never executed: type = TYPE_CHAR; | 0 |
410 | break; never executed: break; | 0 |
411 | | - |
412 | case never executed: case 'C': 'C':never executed: case 'C': | 0 |
413 | type = TYPE_WIDE_CHAR; | - |
414 | c = 'c'; | - |
415 | break; never executed: break; | 0 |
416 | | - |
417 | case never executed: case 's': 's':never executed: case 's': | 0 |
418 | if (flags >= 8TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
419 | | - |
420 | type = TYPE_WIDE_STRING; never executed: type = TYPE_WIDE_STRING; | 0 |
421 | | - |
422 | | - |
423 | | - |
424 | else | - |
425 | type = TYPE_STRING; never executed: type = TYPE_STRING; | 0 |
426 | break; never executed: break; | 0 |
427 | | - |
428 | case never executed: case 'S': 'S':never executed: case 'S': | 0 |
429 | type = TYPE_WIDE_STRING; | - |
430 | c = 's'; | - |
431 | break; never executed: break; | 0 |
432 | | - |
433 | case never executed: case 'p': 'p':never executed: case 'p': | 0 |
434 | type = TYPE_POINTER; | - |
435 | break; never executed: break; | 0 |
436 | case never executed: case 'n': 'n':never executed: case 'n': | 0 |
437 | | - |
438 | | - |
439 | if (flags >= 16TRUE | never evaluated | FALSE | never evaluated |
|| (TRUE | never evaluated | FALSE | never evaluated |
flags & 4)TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
440 | type = TYPE_COUNT_LONGLONGINT_POINTER; never executed: type = TYPE_COUNT_LONGLONGINT_POINTER; | 0 |
441 | else | - |
442 | | - |
443 | | - |
444 | | - |
445 | if (flags >= 8TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
446 | type = TYPE_COUNT_LONGINT_POINTER; never executed: type = TYPE_COUNT_LONGINT_POINTER; | 0 |
447 | else if (flags & 2TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
448 | type = TYPE_COUNT_SCHAR_POINTER; never executed: type = TYPE_COUNT_SCHAR_POINTER; | 0 |
449 | else if (flags & 1TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
450 | type = TYPE_COUNT_SHORT_POINTER; never executed: type = TYPE_COUNT_SHORT_POINTER; | 0 |
451 | else | - |
452 | type = TYPE_COUNT_INT_POINTER; never executed: type = TYPE_COUNT_INT_POINTER; | 0 |
453 | break; never executed: break; | 0 |
454 | case never executed: case '%': '%':never executed: case '%': | 0 |
455 | type = TYPE_NONE; | - |
456 | break; never executed: break; | 0 |
457 | default never executed: default: :never executed: default: | 0 |
458 | | - |
459 | goto never executed: goto error; error;never executed: goto error; | 0 |
460 | } | - |
461 | } | - |
462 | | - |
463 | if (type != TYPE_NONETRUE | never evaluated | FALSE | never evaluated |
) | 0 |
464 | { | - |
465 | dp->arg_index = arg_index; | - |
466 | if (dp->arg_index == (~(size_t)0)TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
467 | { | - |
468 | dp->arg_index = arg_posn++; | - |
469 | if (dp->arg_index == (~(size_t)0)TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
470 | | - |
471 | goto never executed: goto error; error;never executed: goto error; | 0 |
472 | } never executed: end of block | 0 |
473 | { size_t n = (dp->arg_index); if (n >= a_allocatedTRUE | never evaluated | FALSE | never evaluated |
) { size_t memory_size; argument *memory; a_allocated = ((TRUE | never evaluated | FALSE | never evaluated |
a_allocated) <= TRUE | never evaluated | FALSE | never evaluated |
| 0 |
474 | (18446744073709551615UL) TRUE | never evaluated | FALSE | never evaluated |
| 0 |
475 | / (2)TRUE | never evaluated | FALSE | never evaluated |
? (size_t) (a_allocated) * (2) : | 0 |
476 | (18446744073709551615UL) | - |
477 | ); if (a_allocated <= nTRUE | never evaluated | FALSE | never evaluated |
) a_allocated = xsum (n, 1);never executed: a_allocated = xsum (n, 1); memory_size = ((TRUE | never evaluated | FALSE | never evaluated |
a_allocated) <= TRUE | never evaluated | FALSE | never evaluated |
| 0 |
478 | (18446744073709551615UL) TRUE | never evaluated | FALSE | never evaluated |
| 0 |
479 | / (sizeof (argument))TRUE | never evaluated | FALSE | never evaluated |
? (size_t) (a_allocated) * (sizeof (argument)) : | 0 |
480 | (18446744073709551615UL) | - |
481 | ); if (((TRUE | never evaluated | FALSE | never evaluated |
memory_size) == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
482 | (18446744073709551615UL)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
483 | )TRUE | never evaluated | FALSE | never evaluated |
) gotonever executed: goto out_of_memory; out_of_memory;never executed: goto out_of_memory; memory = (argument *) (a->arg != a->direct_alloc_arg ? realloc (a->arg, memory_size) : malloc (memory_size)); if (memory == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
484 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
485 | ) goto never executed: goto out_of_memory; out_of_memory;never executed: goto out_of_memory; if (a->arg == a->direct_alloc_argTRUE | never evaluated | FALSE | never evaluated |
) memcpy (memory, a->arg, a->count * sizeof (argument));never executed: memcpy (memory, a->arg, a->count * sizeof (argument)); a->arg = memory; }never executed: end of block while (a->count <= nTRUE | never evaluated | FALSE | never evaluated |
) a->arg[a->count++].type = TYPE_NONE;never executed: a->arg[a->count++].type = TYPE_NONE; if (a->arg[n].type == TYPE_NONETRUE | never evaluated | FALSE | never evaluated |
) a->arg[n].type = (type);never executed: a->arg[n].type = (type); else if (a->arg[n].type != (type)TRUE | never evaluated | FALSE | never evaluated |
) gotonever executed: goto error; error;never executed: goto error; }; | 0 |
486 | } never executed: end of block | 0 |
487 | dp->conversion = c; | - |
488 | dp->dir_end = cp; | - |
489 | } | - |
490 | | - |
491 | d->count++; | - |
492 | if (d->count >= d_allocatedTRUE | never evaluated | FALSE | never evaluated |
) | 0 |
493 | { | - |
494 | size_t memory_size; | - |
495 | char_directive *memory; | - |
496 | | - |
497 | d_allocated = ((TRUE | never evaluated | FALSE | never evaluated |
d_allocated) <= TRUE | never evaluated | FALSE | never evaluated |
| 0 |
498 | (18446744073709551615UL) TRUE | never evaluated | FALSE | never evaluated |
| 0 |
499 | / (2)TRUE | never evaluated | FALSE | never evaluated |
? (size_t) (d_allocated) * (2) : | 0 |
500 | (18446744073709551615UL) | - |
501 | ); | - |
502 | memory_size = ((TRUE | never evaluated | FALSE | never evaluated |
d_allocated) <= TRUE | never evaluated | FALSE | never evaluated |
| 0 |
503 | (18446744073709551615UL) TRUE | never evaluated | FALSE | never evaluated |
| 0 |
504 | / (sizeof (char_directive))TRUE | never evaluated | FALSE | never evaluated |
? (size_t) (d_allocated) * (sizeof (char_directive)) : | 0 |
505 | (18446744073709551615UL) | - |
506 | ); | - |
507 | if (((TRUE | never evaluated | FALSE | never evaluated |
memory_size) == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
508 | (18446744073709551615UL)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
509 | )TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
510 | | - |
511 | goto never executed: goto out_of_memory; out_of_memory;never executed: goto out_of_memory; | 0 |
512 | memory = (char_directive *) (d->dir != d->direct_alloc_dir | - |
513 | ? realloc (d->dir, memory_size) | - |
514 | : malloc (memory_size)); | - |
515 | if (memory == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
516 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
517 | ) | - |
518 | | - |
519 | goto never executed: goto out_of_memory; out_of_memory;never executed: goto out_of_memory; | 0 |
520 | if (d->dir == d->direct_alloc_dirTRUE | never evaluated | FALSE | never evaluated |
) | 0 |
521 | memcpy (memory, d->dir, d->count * sizeof (char_directive)); never executed: memcpy (memory, d->dir, d->count * sizeof (char_directive)); | 0 |
522 | d->dir = memory; | - |
523 | } never executed: end of block | 0 |
524 | } never executed: end of block | 0 |
525 | | - |
526 | | - |
527 | | - |
528 | | - |
529 | | - |
530 | | - |
531 | | - |
532 | } never executed: end of block | 0 |
533 | d->dir[d->count].dir_start = cp; | - |
534 | | - |
535 | d->max_width_length = max_width_length; | - |
536 | d->max_precision_length = max_precision_length; | - |
537 | return never executed: return 0; 0;never executed: return 0; | 0 |
538 | | - |
539 | error: | - |
540 | if (a->arg != a->direct_alloc_argTRUE | never evaluated | FALSE | never evaluated |
) | 0 |
541 | free (a->arg); never executed: free (a->arg); | 0 |
542 | if (d->dir != d->direct_alloc_dirTRUE | never evaluated | FALSE | never evaluated |
) | 0 |
543 | free (d->dir); never executed: free (d->dir); | 0 |
544 | | - |
545 | (*__errno_location ()) | - |
546 | = | - |
547 | 22 | - |
548 | ; | - |
549 | return never executed: return -1; -1;never executed: return -1; | 0 |
550 | | - |
551 | out_of_memory: | - |
552 | if (a->arg != a->direct_alloc_argTRUE | never evaluated | FALSE | never evaluated |
) | 0 |
553 | free (a->arg); never executed: free (a->arg); | 0 |
554 | if (d->dir != d->direct_alloc_dirTRUE | never evaluated | FALSE | never evaluated |
) | 0 |
555 | free (d->dir); never executed: free (d->dir); | 0 |
556 | | - |
557 | (*__errno_location ()) | - |
558 | = | - |
559 | 12 | - |
560 | ; | - |
561 | return never executed: return -1; -1;never executed: return -1; | 0 |
562 | } | - |
| | |