From b7e2dd6fb446b6b55358f1a6ec7abcf7d28b5590 Mon Sep 17 00:00:00 2001 From: Bernd Schmidt Date: Tue, 15 Dec 2015 14:34:01 +0000 Subject: [PATCH] re PR middle-end/21273 (gensupport.c:collect_insn_data doesn't consider the constraints of match_scratch) Fix PR21273 PR middle-end/21273 * gensupport.c (collect_insn_data): Look for number of alternatives in MATCH_SCRATCH. From-SVN: r231654 --- gcc/ChangeLog | 6 ++++++ gcc/gensupport.c | 4 ++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ca50fba0f69e..69fe3a7273ef 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2015-12-15 Bernd Schmidt + + PR middle-end/21273 + * gensupport.c (collect_insn_data): Look for number of alternatives + in MATCH_SCRATCH. + 2015-12-15 Nathan Sidwell * config/nvptx/nvptx.h (HARD_REGNO_NREGS): Reformat. diff --git a/gcc/gensupport.c b/gcc/gensupport.c index 7969060c117f..e32f19950185 100644 --- a/gcc/gensupport.c +++ b/gcc/gensupport.c @@ -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) -- 2.47.2