fmt.parseWithSign(): prevent edge case overflows

previously when T was smaller than 8 bits, it was possible for base
to overflow T (because base is a u8).  this patch prevents this by
accumulating into a U rather than T which is at least 8 bits wide.

this is the best way i could think of to maintain performance.  this
will only affect parsing of integers less than 8 bits by adding one
additional cast at return.  additionally, this patch may be slightly
slower to return an error for integers less than 8 bits which overflow
because it will accumulate a few more digits before the overflow check
at return.

* add tests which previously overflowed when they shouldn't have

closes #18157
5bbacb0c8cTravis Staloch committed on 12/11/2023, 3:49:22 PM· committed by Veikka Tuominenparenta817e27
1 file changedLine totals unavailable