re PR target/81473 ([avr] build fails due to INT8_MIN and friends.)
authorGeorg-Johann Lay <avr@gjlay.de>
Tue, 18 Jul 2017 09:36:21 +0000 (09:36 +0000)
committerGeorg-Johann Lay <gjl@gcc.gnu.org>
Tue, 18 Jul 2017 09:36:21 +0000 (09:36 +0000)
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

gcc/ChangeLog
gcc/config/avr/avr.c

index 5c2156f6a20b8767771d10481c87dd88b9336920..e2212364af4e3b94485a46f793011a62d316d356 100644 (file)
@@ -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
index 0abfa13df94f095c8cf5958951e355c1b7481ae6..1f333ccc1b2dc25010e61b16a8772100bfdb41ac 100644 (file)
@@ -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