Enable libsanitizer build on mips64
authorXi Ruoyao <xry111@mengyan1223.wang>
Fri, 11 Mar 2022 03:07:00 +0000 (11:07 +0800)
committerXi Ruoyao <xry111@mengyan1223.wang>
Mon, 14 Mar 2022 16:39:47 +0000 (00:39 +0800)
commit344e6f9f2abcff9b2bb4b26b693be4a599272f43
tree8e6197eecc695f4abb1e8179a27cde47a9ebc509
parenta60a3a95d0f6bb11567a13b8684c97671ef12e1d
Enable libsanitizer build on mips64

Bootstrapped and regtested on mips64-linux-gnuabi64.

bootstrap-ubsan revealed 3 bugs (PR 104842, 104843, 104851).
bootstrap-asan did not reveal any new bug.

gcc/

* config/mips/mips.h (SUBTARGET_SHADOW_OFFSET): Define.
* config/mips/mips.cc (mips_option_override): Make
-fsanitize=address imply -fasynchronous-unwind-tables.  This is
needed by libasan for stack backtrace on MIPS.
(mips_asan_shadow_offset): Return SUBTARGET_SHADOW_OFFSET.

gcc/testsuite:

* c-c++-common/asan/global-overflow-1.c: Skip for MIPS with some
optimization levels because inaccurate debug info is causing
dg-output mismatch on line numbers.
* g++.dg/asan/large-func-test-1.C: Likewise.

libsanitizer/

* configure.tgt: Enable build on mips*64*-*-linux*.
gcc/config/mips/mips.cc
gcc/config/mips/mips.h
gcc/testsuite/c-c++-common/asan/global-overflow-1.c
gcc/testsuite/g++.dg/asan/large-func-test-1.C
libsanitizer/configure.tgt