libsanitizer: Fix GetPcSpBp determination of SP on 32-bit Solaris/x86
commit6805c1c6a6254b6df6799d820c0d08a3dbfbec96
authorRainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
Thu, 16 Jul 2020 08:38:48 +0000 (16 10:38 +0200)
committerRainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
Thu, 16 Jul 2020 08:38:48 +0000 (16 10:38 +0200)
tree5e69f0b7a5b893ef9c946ff1dda54e8c6fdccad0
parentfe8185b50914a412f8e3d63e2baa19d0a4f38140
libsanitizer: Fix GetPcSpBp determination of SP on 32-bit Solaris/x86

The latest Solaris 11.4/x86 update uncovered a libsanitizer bug that
caused one test to FAIL for 32-bit:

+FAIL: c-c++-common/asan/null-deref-1.c   -O0  output pattern test
+FAIL: c-c++-common/asan/null-deref-1.c   -O1  output pattern test
+FAIL: c-c++-common/asan/null-deref-1.c   -O2  output pattern test
+FAIL: c-c++-common/asan/null-deref-1.c   -O2 -flto  output pattern test
+FAIL: c-c++-common/asan/null-deref-1.c -O2 -flto -flto-partition=none
output pattern test
+FAIL: c-c++-common/asan/null-deref-1.c   -O3 -g  output pattern test
+FAIL: c-c++-common/asan/null-deref-1.c   -Os  output pattern test

I've identified the problem and the fix has just landed in upstream
llvm-project:

https://reviews.llvm.org/D83664

Tested on i386-pc-solaris2.11 and x86_64-pc-linux.gnu.

libsanitizer:
* sanitizer_common/sanitizer_linux.cpp: Cherry-pick llvm-project
revision f0e9b76c3500496f8f3ea7abe6f4bf801e3b41e7.
libsanitizer/sanitizer_common/sanitizer_linux.cpp