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 <string.h>
|
||||||
#include <unistd.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) {
|
static void message(const char *msg) {
|
||||||
write(2, msg, strlen(msg));
|
write(2, msg, strlen(msg));
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
static const int kMaxCallerPcs = 20;
|
static const int kMaxCallerPcs = 20;
|
||||||
static __sanitizer::atomic_uintptr_t caller_pcs[kMaxCallerPcs];
|
static __sanitizer::atomic_uintptr_t caller_pcs[kMaxCallerPcs];
|
||||||
|
|
Loading…
Reference in New Issue