]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR target/61656 (Undefined behavior in classify_argument)
authorJakub Jelinek <jakub@redhat.com>
Mon, 14 Jul 2014 07:31:57 +0000 (09:31 +0200)
committerJakub Jelinek <jakub@gcc.gnu.org>
Mon, 14 Jul 2014 07:31:57 +0000 (09:31 +0200)
PR target/61656
* config/i386/i386.c (classify_argument): Don't merge classes above
number of words.

From-SVN: r212509

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

index 6017987531abb1baff7ae15547362e75c615a1c7..673eadfc4717f4a800534f9ab321e4aab9819047 100644 (file)
@@ -1,3 +1,9 @@
+2014-07-14  Jakub Jelinek  <jakub@redhat.com>
+
+       PR target/61656
+       * config/i386/i386.c (classify_argument): Don't merge classes above
+       number of words.
+
 2014-07-13  Jan Hubicka  <hubicka@ucw.cz>
 
        * cgraph.h (symtab_node): Add nonzero_address.
index e13f4058d4076f227e417130fdd3f4252fee60d2..542945f1176a2aad4e367a36bed88f3bccb6866e 100644 (file)
@@ -6581,7 +6581,7 @@ classify_argument (enum machine_mode mode, const_tree type,
                                           bit_offset);
                  if (!num)
                    return 0;
-                 for (i = 0; i < num; i++)
+                 for (i = 0; i < num && i < words; i++)
                    classes[i] = merge_classes (subclasses[i], classes[i]);
                }
            }