diff options
author | Richard Biener <rguenther@suse.de> | 2016-06-14 13:47:01 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2016-06-14 13:47:01 +0000 |
commit | 30934c5da53286d78371d396578a757c63942bc9 (patch) | |
tree | c10cec8d883105dbb3d15047b89f3ff821d25aed /gcc/genmatch.c | |
parent | 8c83f71d3b17a8bf136ca0243397dad75ea698f0 (diff) |
re PR middle-end/71526 (ICE: verify_gimple failed)
2016-06-14 Richard Biener <rguenther@suse.de>
PR middle-end/71526
* genmatch.c (expr::gen_transform): Use in_type for comparisons
if available.
* gfortran.dg/pr71526.f90: New testcase.
From-SVN: r237441
Diffstat (limited to 'gcc/genmatch.c')
-rw-r--r-- | gcc/genmatch.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/gcc/genmatch.c b/gcc/genmatch.c index 9bb1279dc00..f5aa29b72f5 100644 --- a/gcc/genmatch.c +++ b/gcc/genmatch.c @@ -2288,8 +2288,14 @@ expr::gen_transform (FILE *f, int indent, const char *dest, bool gimple, { /* comparisons use boolean_type_node (or what gets in), but their operands need to figure out the types themselves. */ - sprintf (optype, "boolean_type_node"); - type = optype; + if (in_type) + type = in_type; + else + { + sprintf (optype, "boolean_type_node"); + type = optype; + } + in_type = NULL; } else if (*opr == COND_EXPR || *opr == VEC_COND_EXPR) |