aboutsummaryrefslogtreecommitdiff
path: root/gcc/emit-rtl.c
diff options
context:
space:
mode:
authorDavid Edelsohn <dje@gcc.gnu.org>2001-12-02 01:06:18 -0500
committerDavid Edelsohn <dje@gcc.gnu.org>2001-12-02 01:06:18 -0500
commit931db8d24fc885494520d20af485c6cdd5f95f92 (patch)
tree13f6e5b7a9c1e333087b55722ae2d5a8794a6fe2 /gcc/emit-rtl.c
parentc4d7a90e8a993fc58998b794df0d806781ddf133 (diff)
downloadgcc-931db8d24fc885494520d20af485c6cdd5f95f92.zip
gcc-931db8d24fc885494520d20af485c6cdd5f95f92.tar.gz
gcc-931db8d24fc885494520d20af485c6cdd5f95f92.tar.bz2
emit-rtl.c (gen_lowpart_common): Cast array element to HOST_WIDE_INT before shifting.
* emit-rtl.c (gen_lowpart_common): Cast array element to HOST_WIDE_INT before shifting. From-SVN: r47521
Diffstat (limited to 'gcc/emit-rtl.c')
-rw-r--r--gcc/emit-rtl.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c
index f3fda29..e7afacd 100644
--- a/gcc/emit-rtl.c
+++ b/gcc/emit-rtl.c
@@ -1061,8 +1061,10 @@ gen_lowpart_common (mode, x)
if (HOST_BITS_PER_WIDE_INT != 64)
abort ();
- return immed_double_const (i[3 * endian] | (i[1 + endian] << 32),
- i[2 - endian] | (i [3 - 3 * endian] << 32),
+ return immed_double_const (i[3 * endian]
+ | ((HOST_WIDE_INT) i[1 + endian] << 32),
+ i[2 - endian]
+ | ((HOST_WIDE_INT) i[3 - 3 * endian] << 32),
mode);
#endif
}