]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/llvm-project/compiler-rt/lib/scudo/scudo_termination.cpp
MFV r357163:
[FreeBSD/FreeBSD.git] / contrib / llvm-project / compiler-rt / lib / scudo / scudo_termination.cpp
1 //===-- scudo_termination.cpp -----------------------------------*- C++ -*-===//
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-exception
6 //
7 //===----------------------------------------------------------------------===//
8 ///
9 /// This file contains bare-bones termination functions to replace the
10 /// __sanitizer ones, in order to avoid any potential abuse of the callbacks
11 /// functionality.
12 ///
13 //===----------------------------------------------------------------------===//
14
15 #include "scudo_utils.h"
16
17 #include "sanitizer_common/sanitizer_common.h"
18
19 namespace __sanitizer {
20
21 bool AddDieCallback(DieCallbackType Callback) { return true; }
22
23 bool RemoveDieCallback(DieCallbackType Callback) { return true; }
24
25 void SetUserDieCallback(DieCallbackType Callback) {}
26
27 void NORETURN Die() {
28   if (common_flags()->abort_on_error)
29     Abort();
30   internal__exit(common_flags()->exitcode);
31 }
32
33 void SetCheckFailedCallback(CheckFailedCallbackType callback) {}
34
35 void NORETURN CheckFailed(const char *File, int Line, const char *Condition,
36                           u64 Value1, u64 Value2) {
37   __scudo::dieWithMessage("CHECK failed at %s:%d %s (%lld, %lld)\n",
38                           File, Line, Condition, Value1, Value2);
39 }
40
41 }  // namespace __sanitizer