Reading leading '0' characters in integers of base 2, 4, 8, 16, or 32
could result in a NUDS with leading zero digits. This is against the
rules. The result was a misbehaving cl_I down the road.
Thanks to Morgan Deters <mdeters@cs.nyu.edu> of the CVC4 team.
erg_MSDptr = erg_LSDptr; erg_len = 0;\r
var uintD d = 0; // resulting digit\r
var int ch_where = 0; // position of ch inside d\r
- while (len > 0) {\r
+ var uintC min_len = 0; // first non-zero digit\r
+ while (min_len < len && *(const uintB *)(MSBptr+min_len) == '0') {\r
+ ++min_len;\r
+ }\r
+ while (len > min_len) {\r
var uintB ch = *(const uintB *)(MSBptr+len-1); // next character\r
if (ch!='.') { // skip decimal point\r
// Compute value of ch ('0'-'9','A'-'Z','a'-'z'):\r