diff mbox

Fix undefined behaviour in SH port,

Message ID 56064C76.1070907@redhat.com
State New
Headers show

Commit Message

Jeff Law Sept. 26, 2015, 7:42 a.m. UTC
And now the SH port in the obvious way.  Verified by building all the sh 
configurations in config-list.mk with a trunk compiler.

Installed on the trunk,

Jeff
commit ac55233b083fc30445141c530fcf472786f935e7
Author: Jeff Law <law@tor.usersys.redhat.com>
Date:   Sat Sep 26 03:24:07 2015 -0400

        [PATCH] Fix undefined behaviour in SH port
    	* config/sh/sh.h (CONST_OK_FOR_J16): Fix left shift undefined
    	behaviour
diff mbox

Patch

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 6887b14..28c6bf7 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,8 @@ 
 2015-09-26  Jeff Law  <law@redhat.com>
 
+	* config/sh/sh.h (CONST_OK_FOR_J16): Fix left shift undefined
+	behaviour
+
 	* config/mips/mips.c (mips_compute_frame_info): Fix left shift
 	undefined behaviour.
 
diff --git a/gcc/config/sh/sh.h b/gcc/config/sh/sh.h
index 7aa489d..b18cc1f 100644
--- a/gcc/config/sh/sh.h
+++ b/gcc/config/sh/sh.h
@@ -1176,7 +1176,7 @@  extern enum reg_class regno_reg_class[FIRST_PSEUDO_REGISTER];
 
 #define CONST_OK_FOR_J16(VALUE) \
   ((HOST_BITS_PER_WIDE_INT >= 64 && (VALUE) == (HOST_WIDE_INT) 0xffffffff) \
-   || (HOST_BITS_PER_WIDE_INT >= 64 && (VALUE) == (HOST_WIDE_INT) -1 << 32))
+   || (HOST_BITS_PER_WIDE_INT >= 64 && (VALUE) == (HOST_WIDE_INT) (HOST_WIDE_INT_M1U << 32)))
 
 #define CONST_OK_FOR_K08(VALUE) (((HOST_WIDE_INT)(VALUE))>= 0 \
 				 && ((HOST_WIDE_INT)(VALUE)) <= 255)