diff --git a/openmp/libomptarget/DeviceRTL/include/Debug.h b/openmp/libomptarget/DeviceRTL/include/Debug.h --- a/openmp/libomptarget/DeviceRTL/include/Debug.h +++ b/openmp/libomptarget/DeviceRTL/include/Debug.h @@ -16,12 +16,14 @@ /// /// { extern "C" { -void __assert_assume(bool cond, const char *exp, const char *file, int line); +void __assert_assume(bool cond, const char *assertion, const char *file, + int line, const char *function); void __assert_fail(const char *assertion, const char *file, unsigned line, const char *function); } -#define ASSERT(e) __assert_assume(e, #e, __FILE__, __LINE__) +#define ASSERT(e) \ + __assert_assume(e, #e, __FILE__, __LINE__, __PRETTY_FUNCTION__) ///} diff --git a/openmp/libomptarget/DeviceRTL/src/Debug.cpp b/openmp/libomptarget/DeviceRTL/src/Debug.cpp --- a/openmp/libomptarget/DeviceRTL/src/Debug.cpp +++ b/openmp/libomptarget/DeviceRTL/src/Debug.cpp @@ -21,13 +21,15 @@ #pragma omp declare target extern "C" { -void __assert_assume(bool cond, const char *exp, const char *file, int line) { - if (!cond && config::isDebugMode(config::DebugKind::Assertion)) { - PRINTF("ASSERTION failed: %s at %s, line %d\n", exp, file, line); +void __assert_assume(bool condition, const char *assertion, const char *file, + int line, const char *function) { + if (config::isDebugMode(config::DebugKind::Assertion) && !condition) { + PRINTF("%s:%u: %s: Assertion `%s' failed.\n", file, line, function, + assertion); __builtin_trap(); } - __builtin_assume(cond); + __builtin_assume(condition); } void __assert_fail(const char *assertion, const char *file, unsigned line,