From 42ab7543a7db8fa92175cfb4ca72084daa68e992 Mon Sep 17 00:00:00 2001 From: Danny Robson Date: Fri, 13 Apr 2018 18:49:36 +1000 Subject: [PATCH] debug: add CHECK_FINITE assertion --- debug.hpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/debug.hpp b/debug.hpp index 01053efe..c69babf1 100644 --- a/debug.hpp +++ b/debug.hpp @@ -18,6 +18,7 @@ #define __DEBUG_HPP //#include "maths.hpp" // XXX: See notes at the end of file for maths.hpp inclusion +#include #include #include #include @@ -288,6 +289,21 @@ #endif +#if !defined(NDEBUG) + #define CHECK_FINITE(V) do { \ + const auto &__v = (V); \ + if (!std::isfinite (__v)) { \ + _CHECK_PANIC ("expected finite value\n" \ + "__v: %! is %!", \ + #V, __v); \ + } \ + } while (0) +#else +#define CHECK_FINITE(V,...) +#endif + + + /////////////////////////////////////////////////////////////////////////////// #define CHECK_THROWS(E,C) do { \