diff options
author | nkozlovskiy <nmk@ydb.tech> | 2023-10-11 19:11:46 +0300 |
---|---|---|
committer | nkozlovskiy <nmk@ydb.tech> | 2023-10-11 19:33:28 +0300 |
commit | 61b3971447e473726d6cdb23fc298e457b4d973c (patch) | |
tree | e2a2a864bb7717f7ae6138f6a3194a254dd2c7bb /contrib/libs/clang14-rt/lib/ubsan/ubsan_diag_standalone.cpp | |
parent | a674dc57d88d43c2e8e90a6084d5d2c988e0402c (diff) | |
download | ydb-61b3971447e473726d6cdb23fc298e457b4d973c.tar.gz |
add sanitizers dependencies
Diffstat (limited to 'contrib/libs/clang14-rt/lib/ubsan/ubsan_diag_standalone.cpp')
-rw-r--r-- | contrib/libs/clang14-rt/lib/ubsan/ubsan_diag_standalone.cpp | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/contrib/libs/clang14-rt/lib/ubsan/ubsan_diag_standalone.cpp b/contrib/libs/clang14-rt/lib/ubsan/ubsan_diag_standalone.cpp new file mode 100644 index 0000000000..5526ae0516 --- /dev/null +++ b/contrib/libs/clang14-rt/lib/ubsan/ubsan_diag_standalone.cpp @@ -0,0 +1,38 @@ +//===-- ubsan_diag_standalone.cpp -----------------------------------------===// +// +// 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 +// +//===----------------------------------------------------------------------===// +// +// Diagnostic reporting for the standalone UBSan runtime. +// +//===----------------------------------------------------------------------===// + +#include "ubsan_platform.h" +#if CAN_SANITIZE_UB +#include "ubsan_diag.h" + +using namespace __ubsan; + +void __sanitizer::BufferedStackTrace::UnwindImpl( + uptr pc, uptr bp, void *context, bool request_fast, u32 max_depth) { + uptr top = 0; + uptr bottom = 0; + GetThreadStackTopAndBottom(false, &top, &bottom); + bool fast = StackTrace::WillUseFastUnwind(request_fast); + Unwind(max_depth, pc, bp, context, top, bottom, fast); +} + +extern "C" { +SANITIZER_INTERFACE_ATTRIBUTE +void __sanitizer_print_stack_trace() { + GET_CURRENT_PC_BP; + BufferedStackTrace stack; + stack.Unwind(pc, bp, nullptr, common_flags()->fast_unwind_on_fatal); + stack.Print(); +} +} // extern "C" + +#endif // CAN_SANITIZE_UB |