//===----------------------------------------------------------------------===// // // 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 // //===----------------------------------------------------------------------===// /// /// \file /// This file contains the implementation of the helper functions for the error /// handling macros. /// //===----------------------------------------------------------------------===// #include "mathtest/ErrorHandling.hpp" #include "llvm/ADT/Twine.h" #include "llvm/Support/ErrorHandling.h" #include using namespace mathtest; [[noreturn]] void detail::reportFatalError(const llvm::Twine &Message, const char *File, int Line, const char *FuncName) { // clang-format off llvm::report_fatal_error( llvm::Twine("Fatal error in '") + FuncName + "' at " + File + ":" + llvm::Twine(Line) + "\n Message: " + Message, /*gen_crash_diag=*/false); // clang-format on } [[noreturn]] void detail::reportOffloadError(const char *ResultExpr, ol_result_t Result, const char *File, int Line, const char *FuncName) { // clang-format off llvm::report_fatal_error( llvm::Twine("OL_CHECK failed") + "\n Location: " + File + ":" + llvm::Twine(Line) + "\n Function: " + FuncName + "\n Expression: " + ResultExpr + "\n Error code: " + llvm::Twine(Result->Code) + "\n Details: " + (Result->Details ? Result->Details : "No details provided"), /*gen_crash_diag=*/false); // clang-format on }