From: Xi Ruoyao Date: Wed, 17 Feb 2021 11:57:13 +0000 (+0000) Subject: mips: Avoid out-of-bounds access in mips_symbol_insns [PR98491] X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=06505e701dcfdb1b9855601d6cf0aa1caea62975;p=gcc.git mips: Avoid out-of-bounds access in mips_symbol_insns [PR98491] An invalid use of MSA_SUPPORTED_MODE_P was causing an ICE on mips64el with -mmsa. The detailed analysis is posted on bugzilla. gcc/ChangeLog: 2021-02-17 Xi Ruoyao PR target/98491 * config/mips/mips.c (mips_symbol_insns): Do not use MSA_SUPPORTED_MODE_P if mode is MAX_MACHINE_MODE. --- diff --git a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c index ebb04b72b2b..8bd2d29552e 100644 --- a/gcc/config/mips/mips.c +++ b/gcc/config/mips/mips.c @@ -2381,7 +2381,7 @@ mips_symbol_insns (enum mips_symbol_type type, machine_mode mode) { /* MSA LD.* and ST.* cannot support loading symbols via an immediate operand. */ - if (MSA_SUPPORTED_MODE_P (mode)) + if (mode != MAX_MACHINE_MODE && MSA_SUPPORTED_MODE_P (mode)) return 0; return mips_symbol_insns_1 (type, mode) * (TARGET_MIPS16 ? 2 : 1);