Fix PR21273
authorbernds <bernds@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 15 Dec 2015 14:34:01 +0000 (14:34 +0000)
committerbernds <bernds@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 15 Dec 2015 14:34:01 +0000 (14:34 +0000)
PR middle-end/21273
* gensupport.c (collect_insn_data): Look for number of alternatives
in MATCH_SCRATCH.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231654 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/gensupport.c

index ca50fba..69fe3a7 100644 (file)
@@ -1,3 +1,9 @@
+2015-12-15  Bernd Schmidt  <bschmidt@redhat.com>
+
+       PR middle-end/21273
+       * gensupport.c (collect_insn_data): Look for number of alternatives
+       in MATCH_SCRATCH.
+
 2015-12-15  Nathan Sidwell  <nathan@acm.org>
 
        * config/nvptx/nvptx.h (HARD_REGNO_NREGS): Reformat.
index 7969060..e32f199 100644 (file)
@@ -1068,12 +1068,12 @@ collect_insn_data (rtx pattern, int *palt, int *pmax)
   switch (code)
     {
     case MATCH_OPERAND:
-      i = n_alternatives (XSTR (pattern, 2));
+    case MATCH_SCRATCH:
+      i = n_alternatives (XSTR (pattern, code == MATCH_SCRATCH ? 1 : 2));
       *palt = (i > *palt ? i : *palt);
       /* Fall through.  */
 
     case MATCH_OPERATOR:
-    case MATCH_SCRATCH:
     case MATCH_PARALLEL:
       i = XINT (pattern, 0);
       if (i > *pmax)