Absolute File Name: | /home/opencoverage/opencoverage/guest-scripts/coreutils/src/gnulib/lib/xstrtol.c |
Source code | Switch to Preprocessed file |
Line | Source | Count | ||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | /* A more useful interface to strtol. | - | ||||||||||||||||||||||||||||||||||||
2 | - | |||||||||||||||||||||||||||||||||||||
3 | Copyright (C) 1995-1996, 1998-2001, 2003-2007, 2009-2018 Free Software | - | ||||||||||||||||||||||||||||||||||||
4 | Foundation, Inc. | - | ||||||||||||||||||||||||||||||||||||
5 | - | |||||||||||||||||||||||||||||||||||||
6 | This program is free software: you can redistribute it and/or modify | - | ||||||||||||||||||||||||||||||||||||
7 | it under the terms of the GNU General Public License as published by | - | ||||||||||||||||||||||||||||||||||||
8 | the Free Software Foundation; either version 3 of the License, or | - | ||||||||||||||||||||||||||||||||||||
9 | (at your option) any later version. | - | ||||||||||||||||||||||||||||||||||||
10 | - | |||||||||||||||||||||||||||||||||||||
11 | This program is distributed in the hope that it will be useful, | - | ||||||||||||||||||||||||||||||||||||
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | - | ||||||||||||||||||||||||||||||||||||
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | - | ||||||||||||||||||||||||||||||||||||
14 | GNU General Public License for more details. | - | ||||||||||||||||||||||||||||||||||||
15 | - | |||||||||||||||||||||||||||||||||||||
16 | You should have received a copy of the GNU General Public License | - | ||||||||||||||||||||||||||||||||||||
17 | along with this program. If not, see <https://www.gnu.org/licenses/>. */ | - | ||||||||||||||||||||||||||||||||||||
18 | - | |||||||||||||||||||||||||||||||||||||
19 | /* Written by Jim Meyering. */ | - | ||||||||||||||||||||||||||||||||||||
20 | - | |||||||||||||||||||||||||||||||||||||
21 | #ifndef __strtol | - | ||||||||||||||||||||||||||||||||||||
22 | # define __strtol strtol | - | ||||||||||||||||||||||||||||||||||||
23 | # define __strtol_t long int | - | ||||||||||||||||||||||||||||||||||||
24 | # define __xstrtol xstrtol | - | ||||||||||||||||||||||||||||||||||||
25 | # define STRTOL_T_MINIMUM LONG_MIN | - | ||||||||||||||||||||||||||||||||||||
26 | # define STRTOL_T_MAXIMUM LONG_MAX | - | ||||||||||||||||||||||||||||||||||||
27 | #endif | - | ||||||||||||||||||||||||||||||||||||
28 | - | |||||||||||||||||||||||||||||||||||||
29 | #include <config.h> | - | ||||||||||||||||||||||||||||||||||||
30 | - | |||||||||||||||||||||||||||||||||||||
31 | #include "xstrtol.h" | - | ||||||||||||||||||||||||||||||||||||
32 | - | |||||||||||||||||||||||||||||||||||||
33 | /* Some pre-ANSI implementations (e.g. SunOS 4) | - | ||||||||||||||||||||||||||||||||||||
34 | need stderr defined if assertion checking is enabled. */ | - | ||||||||||||||||||||||||||||||||||||
35 | #include <stdio.h> | - | ||||||||||||||||||||||||||||||||||||
36 | - | |||||||||||||||||||||||||||||||||||||
37 | #include <ctype.h> | - | ||||||||||||||||||||||||||||||||||||
38 | #include <errno.h> | - | ||||||||||||||||||||||||||||||||||||
39 | #include <limits.h> | - | ||||||||||||||||||||||||||||||||||||
40 | #include <stdlib.h> | - | ||||||||||||||||||||||||||||||||||||
41 | #include <string.h> | - | ||||||||||||||||||||||||||||||||||||
42 | - | |||||||||||||||||||||||||||||||||||||
43 | #include "assure.h" | - | ||||||||||||||||||||||||||||||||||||
44 | #include "intprops.h" | - | ||||||||||||||||||||||||||||||||||||
45 | - | |||||||||||||||||||||||||||||||||||||
46 | /* xstrtoll.c and xstrtoull.c, which include this file, require that | - | ||||||||||||||||||||||||||||||||||||
47 | ULLONG_MAX, LLONG_MAX, LLONG_MIN are defined, but <limits.h> does not | - | ||||||||||||||||||||||||||||||||||||
48 | define them on all platforms. */ | - | ||||||||||||||||||||||||||||||||||||
49 | #ifndef ULLONG_MAX | - | ||||||||||||||||||||||||||||||||||||
50 | # define ULLONG_MAX TYPE_MAXIMUM (unsigned long long) | - | ||||||||||||||||||||||||||||||||||||
51 | #endif | - | ||||||||||||||||||||||||||||||||||||
52 | #ifndef LLONG_MAX | - | ||||||||||||||||||||||||||||||||||||
53 | # define LLONG_MAX TYPE_MAXIMUM (long long int) | - | ||||||||||||||||||||||||||||||||||||
54 | #endif | - | ||||||||||||||||||||||||||||||||||||
55 | #ifndef LLONG_MIN | - | ||||||||||||||||||||||||||||||||||||
56 | # define LLONG_MIN TYPE_MINIMUM (long long int) | - | ||||||||||||||||||||||||||||||||||||
57 | #endif | - | ||||||||||||||||||||||||||||||||||||
58 | - | |||||||||||||||||||||||||||||||||||||
59 | static strtol_error | - | ||||||||||||||||||||||||||||||||||||
60 | bkm_scale (__strtol_t *x, int scale_factor) | - | ||||||||||||||||||||||||||||||||||||
61 | { | - | ||||||||||||||||||||||||||||||||||||
62 | if (TYPE_SIGNED (__strtol_t) && *x < STRTOL_T_MINIMUM / scale_factor)
| 0-96 | ||||||||||||||||||||||||||||||||||||
63 | { | - | ||||||||||||||||||||||||||||||||||||
64 | *x = STRTOL_T_MINIMUM; | - | ||||||||||||||||||||||||||||||||||||
65 | return LONGINT_OVERFLOW; never executed: return LONGINT_OVERFLOW; | 0 | ||||||||||||||||||||||||||||||||||||
66 | } | - | ||||||||||||||||||||||||||||||||||||
67 | if (STRTOL_T_MAXIMUM / scale_factor < *x)
| 0-133 | ||||||||||||||||||||||||||||||||||||
68 | { | - | ||||||||||||||||||||||||||||||||||||
69 | *x = STRTOL_T_MAXIMUM; | - | ||||||||||||||||||||||||||||||||||||
70 | return LONGINT_OVERFLOW; never executed: return LONGINT_OVERFLOW; | 0 | ||||||||||||||||||||||||||||||||||||
71 | } | - | ||||||||||||||||||||||||||||||||||||
72 | *x *= scale_factor; | - | ||||||||||||||||||||||||||||||||||||
73 | return LONGINT_OK; executed 133 times by 8 tests: return LONGINT_OK; Executed by:
| 133 | ||||||||||||||||||||||||||||||||||||
74 | } | - | ||||||||||||||||||||||||||||||||||||
75 | - | |||||||||||||||||||||||||||||||||||||
76 | static strtol_error | - | ||||||||||||||||||||||||||||||||||||
77 | bkm_scale_by_power (__strtol_t *x, int base, int power) | - | ||||||||||||||||||||||||||||||||||||
78 | { | - | ||||||||||||||||||||||||||||||||||||
79 | strtol_error err = LONGINT_OK; | - | ||||||||||||||||||||||||||||||||||||
80 | while (power--)
| 76-130 | ||||||||||||||||||||||||||||||||||||
81 | err |= bkm_scale (x, base); executed 130 times by 8 tests: err |= bkm_scale (x, base); Executed by:
| 130 | ||||||||||||||||||||||||||||||||||||
82 | return err; executed 76 times by 8 tests: return err; Executed by:
| 76 | ||||||||||||||||||||||||||||||||||||
83 | } | - | ||||||||||||||||||||||||||||||||||||
84 | - | |||||||||||||||||||||||||||||||||||||
85 | /* FIXME: comment. */ | - | ||||||||||||||||||||||||||||||||||||
86 | - | |||||||||||||||||||||||||||||||||||||
87 | strtol_error | - | ||||||||||||||||||||||||||||||||||||
88 | __xstrtol (const char *s, char **ptr, int strtol_base, | - | ||||||||||||||||||||||||||||||||||||
89 | __strtol_t *val, const char *valid_suffixes) | - | ||||||||||||||||||||||||||||||||||||
90 | { | - | ||||||||||||||||||||||||||||||||||||
91 | char *t_ptr; | - | ||||||||||||||||||||||||||||||||||||
92 | char **p; | - | ||||||||||||||||||||||||||||||||||||
93 | __strtol_t tmp; | - | ||||||||||||||||||||||||||||||||||||
94 | strtol_error err = LONGINT_OK; | - | ||||||||||||||||||||||||||||||||||||
95 | - | |||||||||||||||||||||||||||||||||||||
96 | assure (0 <= strtol_base && strtol_base <= 36); | - | ||||||||||||||||||||||||||||||||||||
97 | - | |||||||||||||||||||||||||||||||||||||
98 | p = (ptr ? ptr : &t_ptr);
| 2548-14202 | ||||||||||||||||||||||||||||||||||||
99 | - | |||||||||||||||||||||||||||||||||||||
100 | errno = 0; | - | ||||||||||||||||||||||||||||||||||||
101 | - | |||||||||||||||||||||||||||||||||||||
102 | if (! TYPE_SIGNED (__strtol_t))
| 6867-9883 | ||||||||||||||||||||||||||||||||||||
103 | { | - | ||||||||||||||||||||||||||||||||||||
104 | const char *q = s; | - | ||||||||||||||||||||||||||||||||||||
105 | unsigned char ch = *q; | - | ||||||||||||||||||||||||||||||||||||
106 | while (isspace (ch))
| 7-6867 | ||||||||||||||||||||||||||||||||||||
107 | ch = *++q; executed 7 times by 3 tests: ch = *++q; Executed by:
| 7 | ||||||||||||||||||||||||||||||||||||
108 | if (ch == '-')
| 85-6782 | ||||||||||||||||||||||||||||||||||||
109 | return LONGINT_INVALID; executed 85 times by 21 tests: return LONGINT_INVALID; Executed by:
| 85 | ||||||||||||||||||||||||||||||||||||
110 | } executed 6782 times by 26 tests: end of block Executed by:
| 6782 | ||||||||||||||||||||||||||||||||||||
111 | - | |||||||||||||||||||||||||||||||||||||
112 | tmp = __strtol (s, p, strtol_base); | - | ||||||||||||||||||||||||||||||||||||
113 | - | |||||||||||||||||||||||||||||||||||||
114 | if (*p == s)
| 79-16586 | ||||||||||||||||||||||||||||||||||||
115 | { | - | ||||||||||||||||||||||||||||||||||||
116 | /* If there is no number but there is a valid suffix, assume the | - | ||||||||||||||||||||||||||||||||||||
117 | number is 1. The string is invalid otherwise. */ | - | ||||||||||||||||||||||||||||||||||||
118 | if (valid_suffixes && **p && strchr (valid_suffixes, **p))
| 0-72 | ||||||||||||||||||||||||||||||||||||
119 | tmp = 1; executed 9 times by 2 tests: tmp = 1; Executed by:
| 9 | ||||||||||||||||||||||||||||||||||||
120 | else | - | ||||||||||||||||||||||||||||||||||||
121 | return LONGINT_INVALID; executed 70 times by 17 tests: return LONGINT_INVALID; Executed by:
| 70 | ||||||||||||||||||||||||||||||||||||
122 | } | - | ||||||||||||||||||||||||||||||||||||
123 | else if (errno != 0)
| 36-16550 | ||||||||||||||||||||||||||||||||||||
124 | { | - | ||||||||||||||||||||||||||||||||||||
125 | if (errno != ERANGE)
| 0-36 | ||||||||||||||||||||||||||||||||||||
126 | return LONGINT_INVALID; never executed: return LONGINT_INVALID; | 0 | ||||||||||||||||||||||||||||||||||||
127 | err = LONGINT_OVERFLOW; | - | ||||||||||||||||||||||||||||||||||||
128 | } executed 36 times by 10 tests: end of block Executed by:
| 36 | ||||||||||||||||||||||||||||||||||||
129 | - | |||||||||||||||||||||||||||||||||||||
130 | /* Let valid_suffixes == NULL mean "allow any suffix". */ | - | ||||||||||||||||||||||||||||||||||||
131 | /* FIXME: update all callers except the ones that allow suffixes | - | ||||||||||||||||||||||||||||||||||||
132 | after the number, changing last parameter NULL to "". */ | - | ||||||||||||||||||||||||||||||||||||
133 | if (!valid_suffixes)
| 8140-8455 | ||||||||||||||||||||||||||||||||||||
134 | { | - | ||||||||||||||||||||||||||||||||||||
135 | *val = tmp; | - | ||||||||||||||||||||||||||||||||||||
136 | return err; executed 8455 times by 7 tests: return err; Executed by:
| 8455 | ||||||||||||||||||||||||||||||||||||
137 | } | - | ||||||||||||||||||||||||||||||||||||
138 | - | |||||||||||||||||||||||||||||||||||||
139 | if (**p != '\0')
| 693-7447 | ||||||||||||||||||||||||||||||||||||
140 | { | - | ||||||||||||||||||||||||||||||||||||
141 | int base = 1024; | - | ||||||||||||||||||||||||||||||||||||
142 | int suffixes = 1; | - | ||||||||||||||||||||||||||||||||||||
143 | strtol_error overflow; | - | ||||||||||||||||||||||||||||||||||||
144 | - | |||||||||||||||||||||||||||||||||||||
145 | if (!strchr (valid_suffixes, **p))
| 0-693 | ||||||||||||||||||||||||||||||||||||
146 | { | - | ||||||||||||||||||||||||||||||||||||
147 | *val = tmp; | - | ||||||||||||||||||||||||||||||||||||
148 | return err | LONGINT_INVALID_SUFFIX_CHAR; executed 614 times by 11 tests: return err | LONGINT_INVALID_SUFFIX_CHAR; Executed by:
| 614 | ||||||||||||||||||||||||||||||||||||
149 | } | - | ||||||||||||||||||||||||||||||||||||
150 | - | |||||||||||||||||||||||||||||||||||||
151 | switch (**p) | - | ||||||||||||||||||||||||||||||||||||
152 | { | - | ||||||||||||||||||||||||||||||||||||
153 | case 'E': case 'G': case 'g': case 'k': case 'K': case 'M': case 'm': never executed: case 'E': executed 6 times by 4 tests: case 'G': Executed by:
never executed: case 'g': executed 14 times by 3 tests: case 'k': Executed by:
executed 18 times by 6 tests: case 'K': Executed by:
executed 33 times by 3 tests: case 'M': Executed by:
executed 3 times by 1 test: case 'm': Executed by:
| 0-33 | ||||||||||||||||||||||||||||||||||||
154 | case 'P': case 'T': case 't': case 'Y': case 'Z': never executed: case 'P': executed 2 times by 1 test: case 'T': Executed by:
never executed: case 't': never executed: case 'Y': never executed: case 'Z': | 0-2 | ||||||||||||||||||||||||||||||||||||
155 | - | |||||||||||||||||||||||||||||||||||||
156 | /* The "valid suffix" '0' is a special flag meaning that | - | ||||||||||||||||||||||||||||||||||||
157 | an optional second suffix is allowed, which can change | - | ||||||||||||||||||||||||||||||||||||
158 | the base. A suffix "B" (e.g. "100MB") stands for a power | - | ||||||||||||||||||||||||||||||||||||
159 | of 1000, whereas a suffix "iB" (e.g. "100MiB") stands for | - | ||||||||||||||||||||||||||||||||||||
160 | a power of 1024. If no suffix (e.g. "100M"), assume | - | ||||||||||||||||||||||||||||||||||||
161 | power-of-1024. */ | - | ||||||||||||||||||||||||||||||||||||
162 | - | |||||||||||||||||||||||||||||||||||||
163 | if (strchr (valid_suffixes, '0'))
| 0-76 | ||||||||||||||||||||||||||||||||||||
164 | switch (p[0][1]) | - | ||||||||||||||||||||||||||||||||||||
165 | { | - | ||||||||||||||||||||||||||||||||||||
166 | case 'i': executed 10 times by 1 test: case 'i': Executed by:
| 10 | ||||||||||||||||||||||||||||||||||||
167 | if (p[0][2] == 'B')
| 0-10 | ||||||||||||||||||||||||||||||||||||
168 | suffixes += 2; executed 10 times by 1 test: suffixes += 2; Executed by:
| 10 | ||||||||||||||||||||||||||||||||||||
169 | break; executed 10 times by 1 test: break; Executed by:
| 10 | ||||||||||||||||||||||||||||||||||||
170 | - | |||||||||||||||||||||||||||||||||||||
171 | case 'B': executed 3 times by 1 test: case 'B': Executed by:
| 3 | ||||||||||||||||||||||||||||||||||||
172 | case 'D': /* 'D' is obsolescent */ never executed: case 'D': | 0 | ||||||||||||||||||||||||||||||||||||
173 | base = 1000; | - | ||||||||||||||||||||||||||||||||||||
174 | suffixes++; | - | ||||||||||||||||||||||||||||||||||||
175 | break; executed 3 times by 1 test: break; Executed by:
| 3 | ||||||||||||||||||||||||||||||||||||
176 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||
177 | } executed 76 times by 8 tests: end of block Executed by:
| 76 | ||||||||||||||||||||||||||||||||||||
178 | - | |||||||||||||||||||||||||||||||||||||
179 | switch (**p) | - | ||||||||||||||||||||||||||||||||||||
180 | { | - | ||||||||||||||||||||||||||||||||||||
181 | case 'b': executed 3 times by 1 test: case 'b': Executed by:
| 3 | ||||||||||||||||||||||||||||||||||||
182 | overflow = bkm_scale (&tmp, 512); | - | ||||||||||||||||||||||||||||||||||||
183 | break; executed 3 times by 1 test: break; Executed by:
| 3 | ||||||||||||||||||||||||||||||||||||
184 | - | |||||||||||||||||||||||||||||||||||||
185 | case 'B': never executed: case 'B': | 0 | ||||||||||||||||||||||||||||||||||||
186 | /* This obsolescent first suffix is distinct from the 'B' | - | ||||||||||||||||||||||||||||||||||||
187 | second suffix above. E.g., 'tar -L 1000B' means change | - | ||||||||||||||||||||||||||||||||||||
188 | the tape after writing 1000 KiB of data. */ | - | ||||||||||||||||||||||||||||||||||||
189 | overflow = bkm_scale (&tmp, 1024); | - | ||||||||||||||||||||||||||||||||||||
190 | break; never executed: break; | 0 | ||||||||||||||||||||||||||||||||||||
191 | - | |||||||||||||||||||||||||||||||||||||
192 | case 'c': never executed: case 'c': | 0 | ||||||||||||||||||||||||||||||||||||
193 | overflow = LONGINT_OK; | - | ||||||||||||||||||||||||||||||||||||
194 | break; never executed: break; | 0 | ||||||||||||||||||||||||||||||||||||
195 | - | |||||||||||||||||||||||||||||||||||||
196 | case 'E': /* exa or exbi */ never executed: case 'E': | 0 | ||||||||||||||||||||||||||||||||||||
197 | overflow = bkm_scale_by_power (&tmp, base, 6); | - | ||||||||||||||||||||||||||||||||||||
198 | break; never executed: break; | 0 | ||||||||||||||||||||||||||||||||||||
199 | - | |||||||||||||||||||||||||||||||||||||
200 | case 'G': /* giga or gibi */ executed 6 times by 4 tests: case 'G': Executed by:
| 6 | ||||||||||||||||||||||||||||||||||||
201 | case 'g': /* 'g' is undocumented; for compatibility only */ never executed: case 'g': | 0 | ||||||||||||||||||||||||||||||||||||
202 | overflow = bkm_scale_by_power (&tmp, base, 3); | - | ||||||||||||||||||||||||||||||||||||
203 | break; executed 6 times by 4 tests: break; Executed by:
| 6 | ||||||||||||||||||||||||||||||||||||
204 | - | |||||||||||||||||||||||||||||||||||||
205 | case 'k': /* kilo */ executed 14 times by 3 tests: case 'k': Executed by:
| 14 | ||||||||||||||||||||||||||||||||||||
206 | case 'K': /* kibi */ executed 18 times by 6 tests: case 'K': Executed by:
| 18 | ||||||||||||||||||||||||||||||||||||
207 | overflow = bkm_scale_by_power (&tmp, base, 1); | - | ||||||||||||||||||||||||||||||||||||
208 | break; executed 32 times by 7 tests: break; Executed by:
| 32 | ||||||||||||||||||||||||||||||||||||
209 | - | |||||||||||||||||||||||||||||||||||||
210 | case 'M': /* mega or mebi */ executed 33 times by 3 tests: case 'M': Executed by:
| 33 | ||||||||||||||||||||||||||||||||||||
211 | case 'm': /* 'm' is undocumented; for compatibility only */ executed 3 times by 1 test: case 'm': Executed by:
| 3 | ||||||||||||||||||||||||||||||||||||
212 | overflow = bkm_scale_by_power (&tmp, base, 2); | - | ||||||||||||||||||||||||||||||||||||
213 | break; executed 36 times by 3 tests: break; Executed by:
| 36 | ||||||||||||||||||||||||||||||||||||
214 | - | |||||||||||||||||||||||||||||||||||||
215 | case 'P': /* peta or pebi */ never executed: case 'P': | 0 | ||||||||||||||||||||||||||||||||||||
216 | overflow = bkm_scale_by_power (&tmp, base, 5); | - | ||||||||||||||||||||||||||||||||||||
217 | break; never executed: break; | 0 | ||||||||||||||||||||||||||||||||||||
218 | - | |||||||||||||||||||||||||||||||||||||
219 | case 'T': /* tera or tebi */ executed 2 times by 1 test: case 'T': Executed by:
| 2 | ||||||||||||||||||||||||||||||||||||
220 | case 't': /* 't' is undocumented; for compatibility only */ never executed: case 't': | 0 | ||||||||||||||||||||||||||||||||||||
221 | overflow = bkm_scale_by_power (&tmp, base, 4); | - | ||||||||||||||||||||||||||||||||||||
222 | break; executed 2 times by 1 test: break; Executed by:
| 2 | ||||||||||||||||||||||||||||||||||||
223 | - | |||||||||||||||||||||||||||||||||||||
224 | case 'w': never executed: case 'w': | 0 | ||||||||||||||||||||||||||||||||||||
225 | overflow = bkm_scale (&tmp, 2); | - | ||||||||||||||||||||||||||||||||||||
226 | break; never executed: break; | 0 | ||||||||||||||||||||||||||||||||||||
227 | - | |||||||||||||||||||||||||||||||||||||
228 | case 'Y': /* yotta or 2**80 */ never executed: case 'Y': | 0 | ||||||||||||||||||||||||||||||||||||
229 | overflow = bkm_scale_by_power (&tmp, base, 8); | - | ||||||||||||||||||||||||||||||||||||
230 | break; never executed: break; | 0 | ||||||||||||||||||||||||||||||||||||
231 | - | |||||||||||||||||||||||||||||||||||||
232 | case 'Z': /* zetta or 2**70 */ never executed: case 'Z': | 0 | ||||||||||||||||||||||||||||||||||||
233 | overflow = bkm_scale_by_power (&tmp, base, 7); | - | ||||||||||||||||||||||||||||||||||||
234 | break; never executed: break; | 0 | ||||||||||||||||||||||||||||||||||||
235 | - | |||||||||||||||||||||||||||||||||||||
236 | default: never executed: default: | 0 | ||||||||||||||||||||||||||||||||||||
237 | *val = tmp; | - | ||||||||||||||||||||||||||||||||||||
238 | return err | LONGINT_INVALID_SUFFIX_CHAR; never executed: return err | LONGINT_INVALID_SUFFIX_CHAR; | 0 | ||||||||||||||||||||||||||||||||||||
239 | } | - | ||||||||||||||||||||||||||||||||||||
240 | - | |||||||||||||||||||||||||||||||||||||
241 | err |= overflow; | - | ||||||||||||||||||||||||||||||||||||
242 | *p += suffixes; | - | ||||||||||||||||||||||||||||||||||||
243 | if (**p)
| 0-79 | ||||||||||||||||||||||||||||||||||||
244 | err |= LONGINT_INVALID_SUFFIX_CHAR; never executed: err |= LONGINT_INVALID_SUFFIX_CHAR; | 0 | ||||||||||||||||||||||||||||||||||||
245 | } executed 79 times by 8 tests: end of block Executed by:
| 79 | ||||||||||||||||||||||||||||||||||||
246 | - | |||||||||||||||||||||||||||||||||||||
247 | *val = tmp; | - | ||||||||||||||||||||||||||||||||||||
248 | return err; executed 7526 times by 27 tests: return err; Executed by:
| 7526 | ||||||||||||||||||||||||||||||||||||
249 | } | - | ||||||||||||||||||||||||||||||||||||
Source code | Switch to Preprocessed file |