summaryrefslogtreecommitdiffstats
path: root/src/vppinfra/format.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/vppinfra/format.c')
-rw-r--r--src/vppinfra/format.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/vppinfra/format.c b/src/vppinfra/format.c
index 999b093c174..70292c048ec 100644
--- a/src/vppinfra/format.c
+++ b/src/vppinfra/format.c
@@ -62,6 +62,7 @@
#include <vppinfra/error.h>
#include <vppinfra/string.h>
#include <vppinfra/os.h> /* os_puts */
+#include <vppinfra/math.h>
typedef struct
{
@@ -708,8 +709,12 @@ format_float (u8 * s, f64 x, uword n_fraction_digits, uword output_style)
sign = 1;
}
+ /* Check for not-a-number. */
+ if (isnan (x))
+ return format (s, "%cNaN", sign ? '-' : '+');
+
/* Check for infinity. */
- if (x == x / 2)
+ if (isinf (x))
return format (s, "%cinfinity", sign ? '-' : '+');
x = normalize (x, &expon, &prec);