summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>2015-09-26 07:38:29 +0000
committerlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>2015-09-26 07:38:29 +0000
commitf86cb0d4d76a77ec1261f9d61d353313cb21e122 (patch)
tree891ec5a9c2990de99e7c43635be50e2e1262bfb4
parent6759b0576ae1f474749cc901e0e3d5679f546251 (diff)
downloadgcc-f86cb0d4d76a77ec1261f9d61d353313cb21e122.tar.gz
[PATCH] Fix undefined behaviour in mips port
* config/mips/mips.c (mips_compute_frame_info): Fix left shift undefined behaviour. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228164 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog3
-rw-r--r--gcc/config/mips/mips.c2
2 files changed, 4 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 98c1bd9c913..6887b14fde3 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,8 @@
2015-09-26 Jeff Law <law@redhat.com>
+ * config/mips/mips.c (mips_compute_frame_info): Fix left shift
+ undefined behaviour.
+
* config/cris/cris.md (asrandb): Fix left shift undefined
behaviour.
(asrandw): Likewise.
diff --git a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c
index 0e0ecf232d9..456db08d5f0 100644
--- a/gcc/config/mips/mips.c
+++ b/gcc/config/mips/mips.c
@@ -10572,7 +10572,7 @@ mips_compute_frame_info (void)
if (mips_save_reg_p (regno))
{
frame->num_fp += MAX_FPRS_PER_FMT;
- frame->fmask |= ~(~0 << MAX_FPRS_PER_FMT) << (regno - FP_REG_FIRST);
+ frame->fmask |= ~(~0U << MAX_FPRS_PER_FMT) << (regno - FP_REG_FIRST);
}
/* Move above the FPR save area. */