diff options
Diffstat (limited to 'libsanitizer/sanitizer_common/sanitizer_internal_defs.h')
-rw-r--r-- | libsanitizer/sanitizer_common/sanitizer_internal_defs.h | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/libsanitizer/sanitizer_common/sanitizer_internal_defs.h b/libsanitizer/sanitizer_common/sanitizer_internal_defs.h index b9c9066..676ade1 100644 --- a/libsanitizer/sanitizer_common/sanitizer_internal_defs.h +++ b/libsanitizer/sanitizer_common/sanitizer_internal_defs.h @@ -287,7 +287,12 @@ void NORETURN CheckFailed(const char *file, int line, const char *cond, enum LinkerInitialized { LINKER_INITIALIZED = 0 }; #if !defined(_MSC_VER) || defined(__clang__) -# define GET_CALLER_PC() (uptr)__builtin_return_address(0) +# if SANITIZER_S390_31 +# define GET_CALLER_PC() \ + (uptr)__builtin_extract_return_addr(__builtin_return_address(0)) +# else +# define GET_CALLER_PC() (uptr)__builtin_return_address(0) +# endif # define GET_CURRENT_FRAME() (uptr)__builtin_frame_address(0) inline void Trap() { __builtin_trap(); |