format: Check for NaN when rendering doubles 97/7497/1
authorChris Luke <chrisy@flirble.org>
Sun, 9 Jul 2017 18:30:25 +0000 (14:30 -0400)
committerFlorin Coras <florin.coras@gmail.com>
Sun, 9 Jul 2017 19:43:54 +0000 (19:43 +0000)
commit24a97d6c27bba4c0cd65625c627e5df51fdf9809
tree9b487a3a47b82dd1f39514d972b6242d8f6a1713
parentb2a241ca4008920e8aea7bda3fca3123f258dbcb
format: Check for NaN when rendering doubles

- The result of 0.0/0.0 was being rendered as a lot of
  zeroes in the integer portion, as in this example:

  DBGvpp# show physmem
  0: 16 objects, 576k of 582k used, 3k free, 0 reclaimed, 2k overhead,
  16380k capacity
       alloc. from small object cache: 0 hits 0 attempts (0.00%) replacements 0
       alloc. from free-list: 0 attempts, 0 hits (0.00%), 0 considered (per-attempt 0.00)
       alloc. from vector-expand: 16
       allocs: 16 73643.06 clocks/call
       frees: 0 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.00 clocks/call

- Add two macros to vppinfra/math.h that use compiler builtins to check
  for NaN and Infinity and then use them in format_float().

Change-Id: Iccc03997e6e33d6b888d1e7e20cd78df0cfd02e8
Signed-off-by: Chris Luke <chrisy@flirble.org>
(cherry picked from commit bb18ee6f1c7c172d30cb0c98153499af571777ee)
src/vppinfra/format.c
src/vppinfra/math.h