From 2ab70a4a5c2d5a9ffb923f13b1c3b938c60dd0f0 Mon Sep 17 00:00:00 2001 From: Xi Ruoyao <xry111@mengyan1223.wang> Date: Wed, 9 Mar 2022 01:08:58 +0800 Subject: [PATCH] mips: avoid signed overflow in LUI_OPERAND [PR104842] gcc/ PR target/104842 * config/mips/mips.h (LUI_OPERAND): Cast the input to an unsigned value before adding an offset. --- gcc/config/mips/mips.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gcc/config/mips/mips.h b/gcc/config/mips/mips.h index bf5c1d5a7092..0029864fdcdf 100644 --- a/gcc/config/mips/mips.h +++ b/gcc/config/mips/mips.h @@ -2309,7 +2309,7 @@ enum reg_class #define LUI_OPERAND(VALUE) \ (((VALUE) | 0x7fff0000) == 0x7fff0000 \ - || ((VALUE) | 0x7fff0000) + 0x10000 == 0) + || ((unsigned HOST_WIDE_INT) (VALUE) | 0x7fff0000) + 0x10000 == 0) /* Return a value X with the low 16 bits clear, and such that VALUE - X is a signed 16-bit value. */ -- GitLab