diff options
author | Saleem Abdulrasool <compnerd@compnerd.org> | 2019-02-27 03:21:50 +0000 |
---|---|---|
committer | Saleem Abdulrasool <compnerd@compnerd.org> | 2019-02-27 03:21:50 +0000 |
commit | b67342e7cb08e9b3b64f07698ffab616ef397edb (patch) | |
tree | bf06c59241557a7d5a9c7fd81062dd3fa42bb0fc /llvm/lib/Support/PrettyStackTrace.cpp | |
parent | 7d3986ea30111015565a3e56530e31aad82dfb6f (diff) | |
download | bcm5719-llvm-b67342e7cb08e9b3b64f07698ffab616ef397edb.tar.gz bcm5719-llvm-b67342e7cb08e9b3b64f07698ffab616ef397edb.zip |
Support: enable backtraces on Windows
Some platforms, e.g. Windows, support backtraces but don't have
BACKTRACE. Checking for BACKTRACE prevents Windows from having
backtraces.
Patch by Jason Mittertreiner!
llvm-svn: 354951
Diffstat (limited to 'llvm/lib/Support/PrettyStackTrace.cpp')
-rw-r--r-- | llvm/lib/Support/PrettyStackTrace.cpp | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/llvm/lib/Support/PrettyStackTrace.cpp b/llvm/lib/Support/PrettyStackTrace.cpp index 6e0b35b5e53..8863dea67dd 100644 --- a/llvm/lib/Support/PrettyStackTrace.cpp +++ b/llvm/lib/Support/PrettyStackTrace.cpp @@ -33,7 +33,7 @@ using namespace llvm; // If backtrace support is not enabled, compile out support for pretty stack // traces. This has the secondary effect of not requiring thread local storage // when backtrace support is disabled. -#if defined(HAVE_BACKTRACE) && ENABLE_BACKTRACES +#if ENABLE_BACKTRACES // We need a thread local pointer to manage the stack of our stack trace // objects, but we *really* cannot tolerate destructors running and do not want @@ -127,11 +127,10 @@ static void CrashHandler(void *) { #endif } -// defined(HAVE_BACKTRACE) && ENABLE_BACKTRACES -#endif +#endif // ENABLE_BACKTRACES PrettyStackTraceEntry::PrettyStackTraceEntry() { -#if defined(HAVE_BACKTRACE) && ENABLE_BACKTRACES +#if ENABLE_BACKTRACES // Link ourselves. NextEntry = PrettyStackTraceHead; PrettyStackTraceHead = this; @@ -139,7 +138,7 @@ PrettyStackTraceEntry::PrettyStackTraceEntry() { } PrettyStackTraceEntry::~PrettyStackTraceEntry() { -#if defined(HAVE_BACKTRACE) && ENABLE_BACKTRACES +#if ENABLE_BACKTRACES assert(PrettyStackTraceHead == this && "Pretty stack trace entry destruction is out of order"); PrettyStackTraceHead = NextEntry; @@ -174,7 +173,7 @@ void PrettyStackTraceProgram::print(raw_ostream &OS) const { OS << '\n'; } -#if defined(HAVE_BACKTRACE) && ENABLE_BACKTRACES +#if ENABLE_BACKTRACES static bool RegisterCrashPrinter() { sys::AddSignalHandler(CrashHandler, nullptr); return false; @@ -182,7 +181,7 @@ static bool RegisterCrashPrinter() { #endif void llvm::EnablePrettyStackTrace() { -#if defined(HAVE_BACKTRACE) && ENABLE_BACKTRACES +#if ENABLE_BACKTRACES // The first time this is called, we register the crash printer. static bool HandlerRegistered = RegisterCrashPrinter(); (void)HandlerRegistered; @@ -190,7 +189,7 @@ void llvm::EnablePrettyStackTrace() { } const void *llvm::SavePrettyStackState() { -#if defined(HAVE_BACKTRACE) && ENABLE_BACKTRACES +#if ENABLE_BACKTRACES return PrettyStackTraceHead; #else return nullptr; @@ -198,7 +197,7 @@ const void *llvm::SavePrettyStackState() { } void llvm::RestorePrettyStackState(const void *Top) { -#if defined(HAVE_BACKTRACE) && ENABLE_BACKTRACES +#if ENABLE_BACKTRACES PrettyStackTraceHead = static_cast<PrettyStackTraceEntry *>(const_cast<void *>(Top)); #endif |