line |
true |
false |
branch |
84
|
0 |
0 |
if (!value.parts[0] && !value.parts[1] && |
|
0 |
0 |
if (!value.parts[0] && !value.parts[1] && |
|
0 |
0 |
if (!value.parts[0] && !value.parts[1] && |
85
|
0 |
0 |
!value.parts[2] && !value.parts[3]) { |
92
|
0 |
0 |
for (i = 0; i <= 3; i++) { |
160
|
0 |
0 |
if ((int64_t)dec->high < 0) { /* negative */ |
172
|
0 |
0 |
if (BSON_UNLIKELY ((combination >> 3) == 3)) { |
174
|
0 |
0 |
if (combination == COMBINATION_INFINITY) { /* Infinity */ |
177
|
0 |
0 |
} else if (combination == COMBINATION_NAN) { /* NaN */ |
202
|
0 |
0 |
if (significand128.parts[0] == 0 && significand128.parts[1] == 0 && |
|
0 |
0 |
if (significand128.parts[0] == 0 && significand128.parts[1] == 0 && |
|
0 |
0 |
if (significand128.parts[0] == 0 && significand128.parts[1] == 0 && |
203
|
0 |
0 |
significand128.parts[2] == 0 && significand128.parts[3] == 0) { |
205
|
0 |
0 |
} else if (significand128.parts[0] >= (1 << 17)) { |
214
|
0 |
0 |
for (k = 3; k >= 0; k--) { |
221
|
0 |
0 |
if (!least_digits) { continue; } |
223
|
0 |
0 |
for (j = 8; j >= 0; j--) { |
234
|
0 |
0 |
if (is_zero) { |
239
|
0 |
0 |
while (!(*significand_read)) { |
255
|
0 |
0 |
if (scientific_exponent < -6 || exponent > 0) { |
|
0 |
0 |
if (scientific_exponent < -6 || exponent > 0) { |
260
|
0 |
0 |
if (significand_digits) { |
264
|
0 |
0 |
for (i = 0; i < significand_digits; i++) { |
272
|
0 |
0 |
if (exponent >= 0) { |
273
|
0 |
0 |
for (i = 0; i < significand_digits; i++) { |
280
|
0 |
0 |
if (radix_position > 0) { /* non-zero digits before radix */ |
281
|
0 |
0 |
for (i = 0; i < radix_position; i++) { |
289
|
0 |
0 |
while (radix_position++ < 0) { /* add leading zeros after radix */ |
293
|
0 |
0 |
for (i = 0; i < significand_digits - BSON_MAX (radix_position - 1, 0); |
335
|
0 |
0 |
if (!left && !right) { |
|
0 |
0 |
if (!left && !right) { |
375
|
0 |
0 |
if (isupper (c)) { |
397
|
0 |
0 |
while (*a != '\0' || *b != '\0') { |
|
0 |
0 |
while (*a != '\0' || *b != '\0') { |
399
|
0 |
0 |
if (*a == '\0' || *b == '\0') { |
|
0 |
0 |
if (*a == '\0' || *b == '\0') { |
403
|
0 |
0 |
if (_dec128_tolower (*a) != _dec128_tolower (*b)) { |
471
|
0 |
0 |
BSON_ASSERT (dec); |
475
|
0 |
0 |
if (*str_read == '+' || *str_read == '-') { |
|
0 |
0 |
if (*str_read == '+' || *str_read == '-') { |
481
|
0 |
0 |
if (!isdigit (*str_read) && *str_read != '.') { |
|
0 |
0 |
if (!isdigit (*str_read) && *str_read != '.') { |
486
|
0 |
0 |
} else if (_dec128_istreq (str_read, "nan")) { |
496
|
0 |
0 |
while (isdigit (*str_read) || *str_read == '.') { |
|
0 |
0 |
while (isdigit (*str_read) || *str_read == '.') { |
497
|
0 |
0 |
if (*str_read == '.') { |
498
|
0 |
0 |
if (saw_radix) { |
508
|
0 |
0 |
if (ndigits_stored < 34) { |
509
|
0 |
0 |
if (*str_read != '0' || found_nonzero) { |
|
0 |
0 |
if (*str_read != '0' || found_nonzero) { |
510
|
0 |
0 |
if (!found_nonzero) { |
520
|
0 |
0 |
if (found_nonzero) { |
524
|
0 |
0 |
if (saw_radix) { |
532
|
0 |
0 |
if (saw_radix && !ndigits_read) { |
|
0 |
0 |
if (saw_radix && !ndigits_read) { |
538
|
0 |
0 |
if (*str_read == 'e' || *str_read == 'E') { |
|
0 |
0 |
if (*str_read == 'e' || *str_read == 'E') { |
548
|
0 |
0 |
if (!read_exponent || nread == 0) { |
|
0 |
0 |
if (!read_exponent || nread == 0) { |
556
|
0 |
0 |
if (*str_read) { |
565
|
0 |
0 |
if (!ndigits_stored) { /* value is zero */ |
576
|
0 |
0 |
while (string[first_nonzero + significant_digits - 1 + |
588
|
0 |
0 |
if (exponent <= radix_position && radix_position - exponent > (1 << 14)) { |
|
0 |
0 |
if (exponent <= radix_position && radix_position - exponent > (1 << 14)) { |
595
|
0 |
0 |
while (exponent > BSON_DECIMAL128_EXPONENT_MAX) { |
599
|
0 |
0 |
if (last_digit - first_digit > BSON_DECIMAL128_MAX_DIGITS) { |
601
|
0 |
0 |
if (significant_digits == 0) { |
615
|
0 |
0 |
while (exponent < BSON_DECIMAL128_EXPONENT_MIN || |
|
0 |
0 |
while (exponent < BSON_DECIMAL128_EXPONENT_MIN || |
618
|
0 |
0 |
if (last_digit == 0) { |
620
|
0 |
0 |
if (significant_digits == 0) { |
629
|
0 |
0 |
if (ndigits_stored < ndigits) { |
630
|
0 |
0 |
if (string[ndigits - 1 + includes_sign + saw_radix] - '0' != 0 && |
|
0 |
0 |
if (string[ndigits - 1 + includes_sign + saw_radix] - '0' != 0 && |
638
|
0 |
0 |
if (digits[last_digit] != 0) { |
648
|
0 |
0 |
if (exponent < BSON_DECIMAL128_EXPONENT_MAX) { |
658
|
0 |
0 |
if (last_digit - first_digit + 1 < significant_digits) { |
669
|
0 |
0 |
if (round_digit != 0) { |
680
|
0 |
0 |
if (significant_digits == 0) { /* read a zero */ |
683
|
0 |
0 |
} else if (last_digit - first_digit < 17) { |
687
|
0 |
0 |
for (; d_idx <= last_digit; d_idx++) { |
696
|
0 |
0 |
for (; d_idx <= last_digit - 17; d_idx++) { |
703
|
0 |
0 |
for (; d_idx <= last_digit; d_idx++) { |
714
|
0 |
0 |
if (significand.low < significand_low) { |
722
|
0 |
0 |
if ((significand.high >> 49) & 1) { |
735
|
0 |
0 |
if (is_negative) { |