aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorGeorg-Johann Lay <avr@gjlay.de>2017-07-18 09:36:21 +0000
committerGeorg-Johann Lay <gjl@gcc.gnu.org>2017-07-18 09:36:21 +0000
commitf94f48ffacd568e76d526f2cb8f7347c599affda (patch)
tree8f031064e708c11e5f92d36eb404295220f2deb2 /gcc
parentec15a152077b766a2b61c36f86172af05aa03ab5 (diff)
downloadgcc-f94f48ffacd568e76d526f2cb8f7347c599affda.zip
gcc-f94f48ffacd568e76d526f2cb8f7347c599affda.tar.gz
gcc-f94f48ffacd568e76d526f2cb8f7347c599affda.tar.bz2
re PR target/81473 ([avr] build fails due to INT8_MIN and friends.)
gcc/ PR target/81473 * config/avr/avr.c (avr_optimize_casesi): Don't use INT8_MIN, INT8_MAX, UINT8_MAX, INT16_MIN, INT16_MAX, UINT16_MAX. From-SVN: r250301
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/avr/avr.c6
2 files changed, 9 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 5c2156f..e221236 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2017-07-18 Georg-Johann Lay <avr@gjlay.de>
+
+ PR target/81473
+ * config/avr/avr.c (avr_optimize_casesi): Don't use
+ INT8_MIN, INT8_MAX, UINT8_MAX, INT16_MIN, INT16_MAX, UINT16_MAX.
+
2017-07-18 Robin Dapp <rdapp@linux.vnet.ibm.com>
* tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Remove
diff --git a/gcc/config/avr/avr.c b/gcc/config/avr/avr.c
index 0abfa13..1f333cc 100644
--- a/gcc/config/avr/avr.c
+++ b/gcc/config/avr/avr.c
@@ -553,9 +553,9 @@ avr_optimize_casesi (rtx_insn *insns[6], rtx *xop)
HOST_WIDE_INT hig_idx = low_idx + num_idx;
// Maximum ranges of (un)signed QImode resp. HImode.
- int imin = QImode == mode ? INT8_MIN : INT16_MIN;
- int imax = QImode == mode ? INT8_MAX : INT16_MAX;
- unsigned umax = QImode == mode ? UINT8_MAX : UINT16_MAX;
+ unsigned umax = QImode == mode ? 0xff : 0xffff;
+ int imax = QImode == mode ? 0x7f : 0x7fff;
+ int imin = -imax - 1;
// Testing the case range and whether it fits into the range of the
// (un)signed mode. This test should actually always pass because it