forked from OSchip/llvm-project
[ubsan-minimal] Add a path for non-POSIX (and bare-metal) use of the library
Summary: Hook on -DKERNEL_USE (which is also used in lib/builtins) to not import strlen and not rely on write() being implemented with the stderr on fd 2. With this, the only requirements to use this library are: - "Good enough" std::atomic<void*> and std::atomic<int> - abort() being implemented - ubsan_message(const char*) being implemented Reviewers: eugenis Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D39791 llvm-svn: 320831
This commit is contained in:
parent
a16395008c
commit
237d4c2eab
|
@ -5,9 +5,14 @@
|
|||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#ifdef KERNEL_USE
|
||||
extern "C" void ubsan_message(const char *msg);
|
||||
static void message(const char *msg) { ubsan_message(msg); }
|
||||
#else
|
||||
static void message(const char *msg) {
|
||||
write(2, msg, strlen(msg));
|
||||
}
|
||||
#endif
|
||||
|
||||
static const int kMaxCallerPcs = 20;
|
||||
static __sanitizer::atomic_uintptr_t caller_pcs[kMaxCallerPcs];
|
||||
|
|
Loading…
Reference in New Issue