From: Joseph Huber Date: Thu, 16 Sep 2021 12:51:12 +0000 (-0400) Subject: [OpenMP] Implement __assert_fail in the new device runtime X-Git-Tag: upstream/15.0.7~31179 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b266bcb13557f6a9fcf58a2d2be271a631aee72f;p=platform%2Fupstream%2Fllvm.git [OpenMP] Implement __assert_fail in the new device runtime This patch implements the `__assert_fail` function in the new device runtime. This allows users and developers to use the standars assert function inside of the device. Reviewed By: tianshilei1992 Differential Revision: https://reviews.llvm.org/D109886 --- diff --git a/openmp/libomptarget/DeviceRTL/include/Debug.h b/openmp/libomptarget/DeviceRTL/include/Debug.h index b304bff..4e2a699 100644 --- a/openmp/libomptarget/DeviceRTL/include/Debug.h +++ b/openmp/libomptarget/DeviceRTL/include/Debug.h @@ -17,6 +17,8 @@ /// { extern "C" { void __assert_assume(bool cond, const char *exp, const char *file, int line); +void __assert_fail(const char *assertion, const char *file, unsigned line, + const char *function); } #define ASSERT(e) __assert_assume(e, #e, __FILE__, __LINE__) diff --git a/openmp/libomptarget/DeviceRTL/src/Debug.cpp b/openmp/libomptarget/DeviceRTL/src/Debug.cpp index 69d04d6..af78836 100644 --- a/openmp/libomptarget/DeviceRTL/src/Debug.cpp +++ b/openmp/libomptarget/DeviceRTL/src/Debug.cpp @@ -26,6 +26,13 @@ void __assert_assume(bool cond, const char *exp, const char *file, int line) { __builtin_assume(cond); } + +void __assert_fail(const char *assertion, const char *file, unsigned line, + const char *function) { + PRINTF("%s:%u: %s: Assertion `%s' failed.\n", file, line, function, + assertion); + __builtin_trap(); +} } #pragma omp end declare target