Fix the ASAN shadow offset hook for the n32 ABI. gcc/ChangeLog:
* config/mips/mips.cc (mips_asan_shadow_offset): Reformat to handle the N32 ABI. * config/mips/mips.h (SUBTARGET_SHADOW_OFFSET): Remove the macro, as it is not needed anymore. --- gcc/config/mips/mips.cc | 7 ++++++- gcc/config/mips/mips.h | 7 ------- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/gcc/config/mips/mips.cc b/gcc/config/mips/mips.cc index 2dce4007678..91e651c458e 100644 --- a/gcc/config/mips/mips.cc +++ b/gcc/config/mips/mips.cc @@ -22745,7 +22745,12 @@ mips_constant_alignment (const_tree exp, HOST_WIDE_INT align) static unsigned HOST_WIDE_INT mips_asan_shadow_offset (void) { - return SUBTARGET_SHADOW_OFFSET; + if (mips_abi == ABI_N32) + return (HOST_WIDE_INT_1 << 29); + if (POINTER_SIZE == 64) + return (HOST_WIDE_INT_1 << 37); + else + return HOST_WIDE_INT_C (0x0aaa0000); } /* Implement TARGET_STARTING_FRAME_OFFSET. See mips_compute_frame_info diff --git a/gcc/config/mips/mips.h b/gcc/config/mips/mips.h index 858bbba3a36..0029864fdcd 100644 --- a/gcc/config/mips/mips.h +++ b/gcc/config/mips/mips.h @@ -3463,10 +3463,3 @@ struct GTY(()) machine_function { && !TARGET_MICROMIPS && !TARGET_FIX_24K) #define NEED_INDICATE_EXEC_STACK 0 - -/* Define the shadow offset for asan. Other OS's can override in the - respective tm.h files. */ -#ifndef SUBTARGET_SHADOW_OFFSET -#define SUBTARGET_SHADOW_OFFSET \ - (POINTER_SIZE == 64 ? HOST_WIDE_INT_1 << 37 : HOST_WIDE_INT_C (0x0aaa0000)) -#endif ---