On 11/19/2014 06:12 PM, Maxim Uvarov wrote:
Fix macro logic. Application has to be terminated in any case.

Signed-off-by: Maxim Uvarov <[email protected]>
---
  platform/linux-generic/include/api/odp_debug.h | 11 +++++++----
  1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/platform/linux-generic/include/api/odp_debug.h 
b/platform/linux-generic/include/api/odp_debug.h
index c9b2edd..1cbcb61 100644
--- a/platform/linux-generic/include/api/odp_debug.h
+++ b/platform/linux-generic/include/api/odp_debug.h
@@ -57,10 +57,13 @@ extern "C" {
  /**
   * Runtime assertion-macro - aborts if 'cond' is false.
   */
-#define ODP_ASSERT(cond, msg) \
-       do { if ((ODP_DEBUG == 1) && (!(cond))) { \
-               ODP_ERR("%s\n", msg); \
-               abort(); } \
+#define ODP_ASSERT(cond, msg)                          \
+       do {                                            \
+               if (!(cond)) {                          \
+                       if (ODP_DEBUG == 1)             \
+                               ODP_ERR("%s\n", msg); \
+                       abort();                        \
+               }                                       \
        } while (0)

  /**


Current specification says that ODP_ASSERT can be disabled if not
needed. So it can be used in a fastpath to catch programming errors
and then disabled for release build.

If you want to have persistent asserts then let's make two macros:
- ODP_ASSERT() - persistent assert
- ODP_DEBUG_ASSERT() - assert enabled only in debug build.

BTW is this a part of public API? Will applications use it? I seems
not.

_______________________________________________
lng-odp mailing list
[email protected]
http://lists.linaro.org/mailman/listinfo/lng-odp

Reply via email to