https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100114
--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> --- Confirmed by code inspection, but it's for sure sth not new (but would be nice to fix before GCC 11.1). I suggtest to simply move the initialization inside SetAlternateSignalStack. Sth like diff --git a/libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cpp b/libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cpp index d29438cf9db..803712e268e 100644 --- a/libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cpp +++ b/libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cpp @@ -165,7 +165,7 @@ bool SupportsColoredOutput(fd_t fd) { #if !SANITIZER_GO // TODO(glider): different tools may require different altstack size. -static const uptr kAltStackSize = SIGSTKSZ * 4; // SIGSTKSZ is not enough. +static const uptr kAltStackSize; void SetAlternateSignalStack() { stack_t altstack, oldstack; @@ -176,6 +176,7 @@ void SetAlternateSignalStack() { // TODO(glider): the mapped stack should have the MAP_STACK flag in the // future. It is not required by man 2 sigaltstack now (they're using // malloc()). + kAltStackSize = SIGSTKSZ * 4; // SIGSTKSZ is not enough. void* base = MmapOrDie(kAltStackSize, __func__); altstack.ss_sp = (char*) base; altstack.ss_flags = 0;