| 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 blockExecuted 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 blockExecuted 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 blockExecuted 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 blockExecuted 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 |