From 6f2ca2443c0376df5ed10ce42a8064e26b52dbcc Mon Sep 17 00:00:00 2001 From: law Date: Tue, 29 Sep 2015 16:28:51 +0000 Subject: [PATCH] [PATCH] Fix undefined behaviour in rl78 port * config/rl78/rl78-expand.md (movqi): Fix undefined left shift behaviour. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228252 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 3 +++ gcc/config/rl78/rl78-expand.md | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 1b9985af4daa..79dc89fafa84 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,8 @@ 2015-09-29 Jeff Law + * config/rl78/rl78-expand.md (movqi): Fix undefined left shift + behaviour. + * config/msp430/msp430.c (msp430_legitimate_constant): Fix undefined left shift behaviour. * config/msp430/constraints.md ('L' constraint): Similarly. diff --git a/gcc/config/rl78/rl78-expand.md b/gcc/config/rl78/rl78-expand.md index 0335a4d2a681..67e6620bdf66 100644 --- a/gcc/config/rl78/rl78-expand.md +++ b/gcc/config/rl78/rl78-expand.md @@ -48,7 +48,7 @@ && ! REG_P (operands[0])) operands[1] = copy_to_mode_reg (QImode, operands[1]); - if (CONST_INT_P (operands[1]) && ! IN_RANGE (INTVAL (operands[1]), (-1 << 8) + 1, (1 << 8) - 1)) + if (CONST_INT_P (operands[1]) && ! IN_RANGE (INTVAL (operands[1]), (HOST_WIDE_INT_M1U << 8) + 1, (1 << 8) - 1)) FAIL; } ) -- 2.47.3