diff options
author | Aldy Hernandez <aldyh@redhat.com> | 2017-08-22 08:25:24 +0000 |
---|---|---|
committer | Aldy Hernandez <aldyh@gcc.gnu.org> | 2017-08-22 08:25:24 +0000 |
commit | 4ea9e1a52406d50c63987098c060a1c54d52b46c (patch) | |
tree | fbe846146c2bb63d7640c0b9b50690919c373857 /gcc | |
parent | db995e100b35afe9ee652d45252844e3abddfbec (diff) | |
download | gcc-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/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/wide-int.h | 6 |
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. */ |