[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Getfem-commits] (no subject)
From: |
Yves Renard |
Subject: |
[Getfem-commits] (no subject) |
Date: |
Fri, 14 Jul 2017 01:37:42 -0400 (EDT) |
branch: master
commit 708f9ba58e3df4747eb4620457936ca2f6d5c8ef
Author: rpplx <address@hidden>
Date: Wed Jul 12 22:39:44 2017 +0200
Introduced macro GMM_ASSERT_LEVEL that should take numerical value.
Depending on the assertion level the macros GMM_ASSERT1,
GMM_ASSERT2 and GMM_ASSERT3 are defined to throw exception or are defined
to be empty. This allows to switch of some assertion
on compile time.
---
src/gmm/gmm_except.h | 30 ++++++++++++++++++++----------
1 file changed, 20 insertions(+), 10 deletions(-)
diff --git a/src/gmm/gmm_except.h b/src/gmm/gmm_except.h
index cae703d..65084cf 100644
--- a/src/gmm/gmm_except.h
+++ b/src/gmm/gmm_except.h
@@ -140,25 +140,35 @@ namespace gmm {
}
#endif
-# define GMM_ASSERT1(test, errormsg) \
- { if (!(test)) GMM_THROW_(gmm::gmm_error, errormsg); }
inline void GMM_THROW() {}
#define GMM_THROW(a, b) { GMM_THROW_(a,b); gmm::GMM_THROW(); }
# define GMM_THROW_DEFAULT(errormsg) GMM_THROW_AT_LEVEL(errormsg, 1)
+
+// This allows not to compile some assertions
+#ifndef GMM_ASSERT_LEVEL
#if defined(NDEBUG)
+# define GMM_ASSERT_LEVEL 1
+#elif defined(DEBUG_MODE)
+# define GMM_ASSERT_LEVEL 3
+#else
+# define GMM_ASSERT_LEVEL 2
+#endif
+#endif
+
+
+# define GMM_ASSERT1(test, errormsg) { if (!(test))
GMM_THROW_AT_LEVEL(errormsg, 1); }
+
+#if GMM_ASSERT_LEVEL < 2
# define GMM_ASSERT2(test, errormsg) {}
# define GMM_ASSERT3(test, errormsg) {}
-#elif !defined(GMM_FULL_NDEBUG)
-# define GMM_ASSERT2(test, errormsg) \
- { if (!(test)) GMM_THROW_(gmm::gmm_error, errormsg); }
-# define GMM_ASSERT3(test, errormsg) \
- { if (!(test)) GMM_THROW_(gmm::gmm_error, errormsg); }
+#elif GMM_ASSERT_LEVEL < 3
+# define GMM_ASSERT2(test, errormsg){ if (!(test))
GMM_THROW_AT_LEVEL(errormsg, 2); }
+# define GMM_ASSERT3(test, errormsg){}
#else
-# define GMM_ASSERT2(test, errormsg) \
- { if (!(test)) GMM_THROW_(gmm::gmm_error, errormsg); }
-# define GMM_ASSERT3(test, errormsg)
+# define GMM_ASSERT2(test, errormsg){ if (!(test))
GMM_THROW_AT_LEVEL(errormsg, 2); }
+# define GMM_ASSERT3(test, errormsg){ if (!(test))
GMM_THROW_AT_LEVEL(errormsg, 3); }
#endif
/* *********************************************************************** */
- [Getfem-commits] (no subject), (continued)
- [Getfem-commits] (no subject), Yves Renard, 2017/07/14
- [Getfem-commits] (no subject), Yves Renard, 2017/07/14
- [Getfem-commits] (no subject), Yves Renard, 2017/07/14
- [Getfem-commits] (no subject), Yves Renard, 2017/07/14
- [Getfem-commits] (no subject), Yves Renard, 2017/07/14
- [Getfem-commits] (no subject), Yves Renard, 2017/07/14
- [Getfem-commits] (no subject), Yves Renard, 2017/07/14
- [Getfem-commits] (no subject), Yves Renard, 2017/07/14
- [Getfem-commits] (no subject), Yves Renard, 2017/07/14
- [Getfem-commits] (no subject), Yves Renard, 2017/07/14
- [Getfem-commits] (no subject),
Yves Renard <=
- [Getfem-commits] (no subject), Yves Renard, 2017/07/14
- [Getfem-commits] (no subject), Yves Renard, 2017/07/14
- [Getfem-commits] (no subject), Yves Renard, 2017/07/14
- [Getfem-commits] (no subject), Yves Renard, 2017/07/14
- [Getfem-commits] (no subject), Yves Renard, 2017/07/14
- [Getfem-commits] (no subject), Yves Renard, 2017/07/14
- [Getfem-commits] (no subject), Yves Renard, 2017/07/14
- [Getfem-commits] (no subject), Yves Renard, 2017/07/14