diff options
Diffstat (limited to 'offload/DeviceRTL/src/Debug.cpp')
| -rw-r--r-- | offload/DeviceRTL/src/Debug.cpp | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/offload/DeviceRTL/src/Debug.cpp b/offload/DeviceRTL/src/Debug.cpp new file mode 100644 index 000000000000..31cd54e3de35 --- /dev/null +++ b/offload/DeviceRTL/src/Debug.cpp @@ -0,0 +1,45 @@ +//===--- Debug.cpp -------- Debug utilities ----------------------- C++ -*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// +// +// This file contains debug utilities +// +//===----------------------------------------------------------------------===// + +#include "Shared/Environment.h" + +#include "Configuration.h" +#include "Debug.h" +#include "Interface.h" +#include "Mapping.h" +#include "State.h" +#include "Types.h" + +using namespace ompx; + +#pragma omp begin declare target device_type(nohost) + +extern "C" { +void __assert_assume(bool condition) { __builtin_assume(condition); } + +void __assert_fail(const char *expr, const char *file, unsigned line, + const char *function) { + __assert_fail_internal(expr, nullptr, file, line, function); +} +void __assert_fail_internal(const char *expr, const char *msg, const char *file, + unsigned line, const char *function) { + if (msg) { + PRINTF("%s:%u: %s: Assertion %s (`%s`) failed.\n", file, line, function, + msg, expr); + } else { + PRINTF("%s:%u: %s: Assertion `%s` failed.\n", file, line, function, expr); + } + __builtin_trap(); +} +} + +#pragma omp end declare target |
