brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.9 KiB · f757087 Raw
52 lines · cpp
1//===----------------------------------------------------------------------===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8///9/// \file10/// This file contains the implementation of the helper functions for the error11/// handling macros.12///13//===----------------------------------------------------------------------===//14 15#include "mathtest/ErrorHandling.hpp"16 17#include "llvm/ADT/Twine.h"18#include "llvm/Support/ErrorHandling.h"19 20#include <OffloadAPI.h>21 22using namespace mathtest;23 24[[noreturn]] void detail::reportFatalError(const llvm::Twine &Message,25                                           const char *File, int Line,26                                           const char *FuncName) {27  // clang-format off28  llvm::report_fatal_error(29      llvm::Twine("Fatal error in '") + FuncName +30          "' at " + File + ":" + llvm::Twine(Line) +31          "\n  Message: " + Message,32      /*gen_crash_diag=*/false);33  // clang-format on34}35 36[[noreturn]] void detail::reportOffloadError(const char *ResultExpr,37                                             ol_result_t Result,38                                             const char *File, int Line,39                                             const char *FuncName) {40  // clang-format off41  llvm::report_fatal_error(42      llvm::Twine("OL_CHECK failed") +43          "\n  Location: " + File + ":" + llvm::Twine(Line) +44          "\n  Function: " + FuncName +45          "\n  Expression: " + ResultExpr +46          "\n  Error code: " + llvm::Twine(Result->Code) +47          "\n  Details: " +48          (Result->Details ? Result->Details : "No details provided"),49      /*gen_crash_diag=*/false);50  // clang-format on51}52