From 7922f5ee649a88cd7c0b6d1a242588013d96223d Mon Sep 17 00:00:00 2001 From: Dimitrije Milosevic Date: Thu, 7 Jul 2022 01:58:20 +0800 Subject: [PATCH] Mips: 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 5eb845960e1..e81a245dcf4 100644 --- a/gcc/config/mips/mips.cc +++ b/gcc/config/mips/mips.cc @@ -22743,7 +22743,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 -- 2.47.2