X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=numeric.c;h=ec93d6b48d294cb9224869278240fccdcec50bef;hb=23131aa47a1f039c7b6f6bb5dd48b8406773ecac;hp=00d58bc4d6ecf51d7406216b3a3a8aeefab66472;hpb=51bd16da02fd2d9228605a3672c5bc91eaddf57b;p=p5sagit%2Fp5-mst-13.2.git diff --git a/numeric.c b/numeric.c index 00d58bc..ec93d6b 100644 --- a/numeric.c +++ b/numeric.c @@ -401,49 +401,49 @@ Perl_grok_number(pTHX_ const char *pv, STRLEN len, UV *valuep) With it gcc on arm is managing 6 instructions (6 cycles) per digit. In theory the optimiser could deduce how far to unroll the loop before checking for overflow. */ - if (s < send) { - int digit = *++s - '0'; + if (++s < send) { + int digit = *s - '0'; if (digit >= 0 && digit <= 9) { value = value * 10 + digit; - if (s < send) { - digit = *++s - '0'; + if (++s < send) { + digit = *s - '0'; if (digit >= 0 && digit <= 9) { value = value * 10 + digit; - if (s < send) { - digit = *++s - '0'; + if (++s < send) { + digit = *s - '0'; if (digit >= 0 && digit <= 9) { value = value * 10 + digit; - if (s < send) { - digit = *++s - '0'; + if (++s < send) { + digit = *s - '0'; if (digit >= 0 && digit <= 9) { value = value * 10 + digit; - if (s < send) { - digit = *++s - '0'; + if (++s < send) { + digit = *s - '0'; if (digit >= 0 && digit <= 9) { value = value * 10 + digit; - if (s < send) { - digit = *++s - '0'; + if (++s < send) { + digit = *s - '0'; if (digit >= 0 && digit <= 9) { value = value * 10 + digit; - if (s < send) { - digit = *++s - '0'; + if (++s < send) { + digit = *s - '0'; if (digit >= 0 && digit <= 9) { value = value * 10 + digit; - if (s < send) { - digit = *++s - '0'; + if (++s < send) { + digit = *s - '0'; if (digit >= 0 && digit <= 9) { value = value * 10 + digit; - if (s < send) { + if (++s < send) { /* Now got 9 digits, so need to check each time for overflow. */ - digit = *++s - '0'; + digit = *s - '0'; while (digit >= 0 && digit <= 9 && (value < max_div_10 || (value == max_div_10 && digit <= max_mod_10))) { value = value * 10 + digit; - if (s < send) - digit = *++s - '0'; + if (++s < send) + digit = *s - '0'; else break; }