Unfortunately, the sanitizer_common tests are disabled on many targets that are supported by sanitizer_common, making it easy to miss issues with that support. This patch enables SPARC testing.
Beside the enabling proper, the patch fixes (together with D91607) the failures of the symbolize_pc.cpp and symbolize_pc_inline.cpp tests. Those tests PASS when compiled with gcc, which happens because clang incorrectly doesn't implement a non-default __builtin_extract_return_addr on several targets, SPARC included.
Because __builtin_extract_return_addr(__builtin_return_addr(0)) is quite a mouthful and I'm uncertain if the code needs to compile with msvc which appparently has it's own _ReturnAddres, I've introduced __sanitizer_return_addr to hide the difference and complexity. Because on 32-bit SPARC __builtin_extract_return_addr differs when the calling funtion returns a struct, I've added a testcase for that.
There are a couple more tests failing on SPARC that I will deal with separately.
Tested on sparcv9-sun-solaris2.11, amd64-pc-solaris2.11, and x86_64-pc-linux-gnu.
gcc also supports __builtin_extract_return_addr