aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorAldy Hernandez <aldyh@redhat.com>2017-08-22 08:25:24 +0000
committerAldy Hernandez <aldyh@gcc.gnu.org>2017-08-22 08:25:24 +0000
commit4ea9e1a52406d50c63987098c060a1c54d52b46c (patch)
treefbe846146c2bb63d7640c0b9b50690919c373857 /gcc
parentdb995e100b35afe9ee652d45252844e3abddfbec (diff)
downloadgcc-4ea9e1a52406d50c63987098c060a1c54d52b46c.zip
gcc-4ea9e1a52406d50c63987098c060a1c54d52b46c.tar.gz
gcc-4ea9e1a52406d50c63987098c060a1c54d52b46c.tar.bz2
* wide-int.h (hwi_with_prec::hwi_with_prec): Sign extend.
From-SVN: r251260
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/wide-int.h6
2 files changed, 9 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 5866bb0..2e482b0 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+2017-08-22 Aldy Hernandez <aldyh@redhat.com>
+
+ * wide-int.h (hwi_with_prec::hwi_with_prec): Sign extend.
+
2017-08-22 Georg-Johann Lay <avr@gjlay.de>
PR target/81910
diff --git a/gcc/wide-int.h b/gcc/wide-int.h
index 2115b61..0596f98 100644
--- a/gcc/wide-int.h
+++ b/gcc/wide-int.h
@@ -1517,8 +1517,12 @@ namespace wi
inline wi::hwi_with_prec::hwi_with_prec (HOST_WIDE_INT v, unsigned int p,
signop s)
- : val (v), precision (p), sgn (s)
+ : precision (p), sgn (s)
{
+ if (precision < HOST_BITS_PER_WIDE_INT)
+ val = sext_hwi (v, precision);
+ else
+ val = v;
}
/* Return a signed integer that has value VAL and precision PRECISION. */