diff options
author | Brad Linden <46733234+brad-linden@users.noreply.github.com> | 2024-09-23 13:31:55 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-09-23 13:31:55 -0700 |
commit | d8e52ec001c476a2320f2d5caceb813465d707e4 (patch) | |
tree | 2fe671253d83620fba0e0b1c6c488997b558a7ef /indra/llcommon/llerror.h | |
parent | 3747dd9a085e4d75ec21c8048f1269bc3f29e582 (diff) | |
parent | 38916ebf367aa400d8151d78204e714d40e8c323 (diff) |
Merge pull request #940 from secondlife/release/maint-b
Maintenance B merges into develop
Diffstat (limited to 'indra/llcommon/llerror.h')
-rw-r--r-- | indra/llcommon/llerror.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/indra/llcommon/llerror.h b/indra/llcommon/llerror.h index 8a143ff30a..b17b9ff21e 100644 --- a/indra/llcommon/llerror.h +++ b/indra/llcommon/llerror.h @@ -95,6 +95,11 @@ const int LL_ERR_NOERR = 0; #define LL_STATIC_ASSERT(func, msg) static_assert(func, msg) #define LL_BAD_TEMPLATE_INSTANTIATION(type, msg) static_assert(false, msg) #else +#if LL_LINUX +// We need access to raise and SIGSEGV +#include <signal.h> +#endif + #define LL_STATIC_ASSERT(func, msg) BOOST_STATIC_ASSERT(func) #define LL_BAD_TEMPLATE_INSTANTIATION(type, msg) BOOST_STATIC_ASSERT(sizeof(type) != 0 && false); #endif @@ -408,12 +413,18 @@ typedef LLError::NoClassInfo _LL_CLASS_TO_LOG; #define LL_NEWLINE '\n' // Use this only in LL_ERRS or in a place that LL_ERRS may not be used + +#ifndef LL_LINUX #define LLERROR_CRASH \ { \ int* make_me_crash = (int*)0xDEADBEEFDEADBEEFUL; \ *make_me_crash = 0; \ exit(*make_me_crash); \ } +#else +// For Linux we just call raise and be done with it. No fighting the compiler to create a crashing code snippet. +#define LLERROR_CRASH raise(SIGSEGV ); +#endif #define LL_ENDL \ LLError::End(); \ |