Fix digit-formatting calculation for small numbers.
authorHenner Zeller <h.zeller@acm.org>
Thu, 21 Jan 2021 20:20:53 +0000 (12:20 -0800)
committerHenner Zeller <h.zeller@acm.org>
Thu, 21 Jan 2021 20:20:53 +0000 (12:20 -0800)
commit7d014902ec579eccd04446131fea4772dd715daf
tree34b3359575d2bebdf0a3124153b3e3bd67a23d5d
parent1f88a3de74eae3896e39795fd5a12d885ab29a93
Fix digit-formatting calculation for small numbers.

Calling log10() on zero causes a non-sensical value to be calculated. On some
compile options, I've observed yosys crashing with an illegal
instruction (SIGILL).

To make it safe, fix the calculation to do a range check; wrap it a
decimal_digits() function, and use it where the previous ceil(log10(n)) call
was used. As a side, it also improves readability.

Signed-off-by: Henner Zeller <h.zeller@acm.org>
frontends/aiger/aigerparse.cc