diff --git a/debug.hpp b/debug.hpp index 3daa4eae..b736f7d8 100644 --- a/debug.hpp +++ b/debug.hpp @@ -24,12 +24,10 @@ /////////////////////////////////////////////////////////////////////////////// -#ifdef ENABLE_DEBUGGING -#define DEBUG_ONLY(X) do { \ - X \ -} while (0) +#if !defined(NDEBUG) + #define _DEBUG_ONLY(X) do { X } while (0) #else -#define DEBUG_ONLY(X) + #define _DEBUG_ONLY(X) do { } while (0) #endif @@ -41,14 +39,14 @@ /////////////////////////////////////////////////////////////////////////////// #define TRACE { \ - DEBUG_ONLY( \ + _DEBUG_ONLY( \ std::cerr << __FILE__ << ":" << __func__ << ":" << __LINE__ << std::endl; \ ); \ } #define WARN(C) do { \ - DEBUG_ONLY( \ + _DEBUG_ONLY( \ if (C) { \ std::cerr << __FILE__ << ":" << __func__ << ":" << __LINE__ << ", " << #C << std::endl; \ } \ @@ -66,7 +64,7 @@ /////////////////////////////////////////////////////////////////////////////// #define CHECK(C) do { \ - DEBUG_ONLY( \ + _DEBUG_ONLY( \ if (!(C)) \ panic (#C); \ ); \ @@ -75,7 +73,7 @@ /////////////////////////////////////////////////////////////////////////////// #define CHECK_SANITY(A) do { \ - DEBUG_ONLY( \ + _DEBUG_ONLY( \ const auto &__a = (A); \ if (!util::debug::is_valid (__a)) { \ _CHECK_PANIC("failed sanity test for %s, %!\n", #A, __a); \ @@ -86,7 +84,7 @@ /////////////////////////////////////////////////////////////////////////////// #define CHECK_EQ(A,B) do { \ - DEBUG_ONLY( \ + _DEBUG_ONLY( \ const auto &__a = (A); \ const auto &__b = (B); \ \ @@ -103,7 +101,7 @@ /////////////////////////////////////////////////////////////////////////////// #define CHECK_LT(A,B) do { \ - DEBUG_ONLY( \ + _DEBUG_ONLY( \ const auto &__a = (A); \ const auto &__b = (B); \ \ @@ -120,7 +118,7 @@ /////////////////////////////////////////////////////////////////////////////// #define CHECK_LE(A,B) do { \ - DEBUG_ONLY( \ + _DEBUG_ONLY( \ const auto &__a = (A); \ const auto &__b = (B); \ \ @@ -137,7 +135,7 @@ /////////////////////////////////////////////////////////////////////////////// #define CHECK_GT(A,B) do { \ - DEBUG_ONLY( \ + _DEBUG_ONLY( \ const auto &__a = (A); \ const auto &__b = (B); \ \ @@ -154,7 +152,7 @@ /////////////////////////////////////////////////////////////////////////////// #define CHECK_GE(A,B) do { \ - DEBUG_ONLY( \ + _DEBUG_ONLY( \ const auto &__a = (A); \ const auto &__b = (B); \ \ @@ -171,7 +169,7 @@ /////////////////////////////////////////////////////////////////////////////// #define CHECK_LIMIT(V,L,H) do { \ - DEBUG_ONLY( \ + _DEBUG_ONLY( \ const auto &__v = (V); \ const auto &__l = (L); \ const auto &__h = (H); \ @@ -190,7 +188,7 @@ /////////////////////////////////////////////////////////////////////////////// #define CHECK_NEQ(A,B) do { \ - DEBUG_ONLY( \ + _DEBUG_ONLY( \ const auto &__a = (A); \ const auto &__b = (B); \ \ @@ -207,7 +205,7 @@ /////////////////////////////////////////////////////////////////////////////// #define CHECK_ZERO(A) do { \ - DEBUG_ONLY( \ + _DEBUG_ONLY( \ const auto &__a = (A); \ \ if (!util::almost_zero (__a)) { \ @@ -221,7 +219,7 @@ /////////////////////////////////////////////////////////////////////////////// #define CHECK_NEZ(A) do { \ - DEBUG_ONLY( \ + _DEBUG_ONLY( \ const auto &__a = (A); \ if (util::exactly_zero (__a)) \ _CHECK_PANIC ("expected zero\n" \ @@ -233,7 +231,7 @@ /////////////////////////////////////////////////////////////////////////////// #define CHECK_MOD(V,M) do { \ - DEBUG_ONLY ( \ + _DEBUG_ONLY ( \ const auto &__check_mod_v = (V); \ const auto &__check_mod_m = (M); \ if (!util::exactly_zero (__check_mod_v % __check_mod_m)) \ @@ -268,7 +266,7 @@ /////////////////////////////////////////////////////////////////////////////// #define CHECK_THROWS(E,C) do { \ - DEBUG_ONLY( \ + _DEBUG_ONLY( \ bool caught = false; \ \ try \ @@ -284,7 +282,7 @@ /////////////////////////////////////////////////////////////////////////////// #define CHECK_NOTHROW(C) do { \ - DEBUG_ONLY( \ + _DEBUG_ONLY( \ try { \ C; \ } catch (const std::exception &e) { \ @@ -395,6 +393,7 @@ namespace util { namespace debug { #include "./debug.ipp" + /////////////////////////////////////////////////////////////////////////////// // XXX: maths needs to be included so that CHECK_EQ/NEQ can call almost_equal, // but maths.hpp might be using CHECK_ macros so we must include maths.hpp diff --git a/m4/nc b/m4/nc index ab01cbf9..006f6977 160000 --- a/m4/nc +++ b/m4/nc @@ -1 +1 @@ -Subproject commit ab01cbf966c2f0a09e7740db56f50827afe284ac +Subproject commit 006f69779160a490786399b1af6a7d1e251cd15c