From: segher Date: Tue, 15 Mar 2016 00:42:43 +0000 (+0000) Subject: genrecog: Fix crash on invalid input X-Git-Tag: upstream/6.1~577 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=85099d886742d771d4d410d7d28bd7d593dbcfd0;p=platform%2Fupstream%2Flinaro-gcc.git genrecog: Fix crash on invalid input If your machine description refers to a non-existent predicate genrecog crashes. This fixes it. * genrecog.c (match_pattern_2): If pred is NULL don't call safe_predicate_mode on it. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@234206 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a5ada00..637ef039 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2016-03-15 Segher Boessenkool + + * genrecog.c (match_pattern_2): If pred is NULL don't call + safe_predicate_mode on it. + 2016-03-14 Jakub Jelinek PR middle-end/70219 diff --git a/gcc/genrecog.c b/gcc/genrecog.c index f8b8ef4..47e4266 100644 --- a/gcc/genrecog.c +++ b/gcc/genrecog.c @@ -4037,7 +4037,7 @@ match_pattern_2 (state *s, md_rtx_info *info, position *pos, rtx pattern) /* Check the mode first, to distinguish things like SImode and DImode register_operands, as described above. */ machine_mode mode = GET_MODE (e->pattern); - if (safe_predicate_mode (pred, mode)) + if (pred && safe_predicate_mode (pred, mode)) s = add_decision (s, rtx_test::mode (e->pos), mode, true); /* Assign to operands[] first, so that the rtx usually doesn't