]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR target/18371 (array subscript out of range in gcc sources)
authorRoger Sayle <roger@eyesopen.com>
Wed, 16 Mar 2005 15:23:40 +0000 (15:23 +0000)
committerRoger Sayle <sayle@gcc.gnu.org>
Wed, 16 Mar 2005 15:23:40 +0000 (15:23 +0000)
PR target/18371
Backport from mainline
2004-12-19  Steven Bosscher  <stevenb@suse.de>
* config/i386/i386.c (ix86_split_to_parts): Use an array with
four elements for decoding a CONST_DOUBLE on 64 bits targets.

From-SVN: r96558

gcc/ChangeLog
gcc/config/i386/i386.c

index 3b69bef99ef8c3139b6b6ff2708d71683b8764bd..7fdc8e0eb2bd5c4477f27c1a45120dc0b42f782c 100644 (file)
@@ -1,3 +1,11 @@
+2005-03-16  Roger Sayle  <roger@eyesopen.com>
+
+       PR target/18371
+       Backport from mainline
+       2004-12-19  Steven Bosscher  <stevenb@suse.de>
+       * config/i386/i386.c (ix86_split_to_parts): Use an array with
+       four elements for decoding a CONST_DOUBLE on 64 bits targets.
+
 2005-03-14  Alan Modra  <amodra@bigpond.net.au>
 
        * config.gcc: Remove excess indentation.
index ff0c1617b4cebb6c39c7941d1c344f7bdad5b728..9504583b85c09cae2f43b73939fbde9bc1ede37e 100644 (file)
@@ -10646,10 +10646,11 @@ ix86_split_to_parts (rtx operand, rtx *parts, enum machine_mode mode)
          else if (GET_CODE (operand) == CONST_DOUBLE)
            {
              REAL_VALUE_TYPE r;
-             long l[3];
+             long l[4];
 
              REAL_VALUE_FROM_CONST_DOUBLE (r, operand);
              real_to_target (l, &r, mode);
+
              /* Do not use shift by 32 to avoid warning on 32bit systems.  */
              if (HOST_BITS_PER_WIDE_INT >= 64)
                parts[0]
@@ -10659,6 +10660,7 @@ ix86_split_to_parts (rtx operand, rtx *parts, enum machine_mode mode)
                       DImode);
              else
                parts[0] = immed_double_const (l[0], l[1], DImode);
+
              if (upper_mode == SImode)
                parts[1] = gen_int_mode (l[2], SImode);
              else if (HOST_BITS_PER_WIDE_INT >= 64)