diff --git a/src/globals.h b/src/globals.h index 2ea1a52af..ce2dc2f8f 100644 --- a/src/globals.h +++ b/src/globals.h @@ -116,6 +116,7 @@ extern void __noreturn jerry_unimplemented (const char *comment, const char *fil * Mark for unreachable points and unimplemented cases */ extern void jerry_ref_unused_variables (int unused_variables_follow, ...); +#ifndef JERRY_NDEBUG #define JERRY_UNREACHABLE() \ do \ { \ @@ -137,7 +138,29 @@ extern void jerry_ref_unused_variables (int unused_variables_follow, ...); jerry_ref_unused_variables (0, __VA_ARGS__); \ } \ } while (0) +#else /* !JERRY_NDEBUG */ +#define JERRY_UNREACHABLE() \ + do \ + { \ + jerry_unreachable (NULL, NULL, NULL, 0); \ + } while (0) +#define JERRY_UNIMPLEMENTED() \ + do \ + { \ + jerry_unimplemented (NULL, NULL, NULL, 0); \ + } while (0) + +#define JERRY_UNIMPLEMENTED_REF_UNUSED_VARS(...) \ + do \ + { \ + jerry_unimplemented (NULL, NULL, NULL, 0); \ + if (false) \ + { \ + jerry_ref_unused_variables (0, __VA_ARGS__); \ + } \ + } while (0) +#endif /* JERRY_NDEBUG */ /** * Conditions' likeliness, unlikeliness. */ diff --git a/src/libruntime/target/linux/jerry-assert.c b/src/libruntime/target/linux/jerry-assert.c index f0cf0ea33..3141a5dec 100644 --- a/src/libruntime/target/linux/jerry-assert.c +++ b/src/libruntime/target/linux/jerry-assert.c @@ -25,8 +25,15 @@ jerry_assert_fail (const char *assertion, /**< assertion condition string */ const char *function, /**< function name */ const uint32_t line) /** line */ { +#ifndef JERRY_NDEBUG __printf ("ICE: Assertion '%s' failed at %s(%s):%u.\n", assertion, file, function, line); +#else /* !JERRY_NDEBUG */ + (void) assertion; + (void) file; + (void) function; + (void) line; +#endif /* JERRY_NDEBUG */ __exit (-ERR_FAILED_INTERNAL_ASSERTION); } /* jerry_assert_fail */ @@ -41,7 +48,14 @@ jerry_unreachable (const char *comment, /**< comment to unreachable mark if exis const char *function, /**< function name */ const uint32_t line) /**< line */ { +#ifndef JERRY_NDEBUG __printf ("ICE: Unreachable control path at %s(%s):%u was executed", file, function, line); +#else /* !JERRY_NDEBUG */ + (void) file; + (void) function; + (void) line; +#endif /* JERRY_NDEBUG */ + if (comment != NULL) { __printf ("(%s)", comment); @@ -61,7 +75,14 @@ jerry_unimplemented (const char *comment, /**< comment to unimplemented mark if const char *function, /**< function name */ const uint32_t line) /**< line */ { +#ifndef JERRY_NDEBUG __printf ("SORRY: Unimplemented case at %s(%s):%u was executed", file, function, line); +#else /* !JERRY_NDEBUG */ + (void) file; + (void) function; + (void) line; +#endif /* JERRY_NDEBUG */ + if (comment != NULL) { __printf ("(%s)", comment);