From b67342e7cb08e9b3b64f07698ffab616ef397edb Mon Sep 17 00:00:00 2001 From: Saleem Abdulrasool Date: Wed, 27 Feb 2019 03:21:50 +0000 Subject: 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 --- llvm/lib/Support/PrettyStackTrace.cpp | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) (limited to 'llvm/lib/Support/PrettyStackTrace.cpp') 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(const_cast(Top)); #endif -- cgit v1.2.3