aboutsummaryrefslogtreecommitdiff
path: root/gcc/genrecog.c
diff options
context:
space:
mode:
authorSegher Boessenkool <segher@kernel.crashing.org>2016-03-15 01:42:43 +0100
committerSegher Boessenkool <segher@gcc.gnu.org>2016-03-15 01:42:43 +0100
commit26a8813fa33bf0812690f848e0ef5d432587a82f (patch)
tree6b196c9a8b3779b7c85edb7eb2feee8c64dada80 /gcc/genrecog.c
parent26a7773c2f46845e5c94a98f6ee5c96081fa511d (diff)
downloadgcc-26a8813fa33bf0812690f848e0ef5d432587a82f.zip
gcc-26a8813fa33bf0812690f848e0ef5d432587a82f.tar.gz
gcc-26a8813fa33bf0812690f848e0ef5d432587a82f.tar.bz2
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. From-SVN: r234206
Diffstat (limited to 'gcc/genrecog.c')
-rw-r--r--gcc/genrecog.c2
1 files changed, 1 insertions, 1 deletions
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