summaryrefslogtreecommitdiff
path: root/gcc/genmatch.c
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2016-06-14 13:47:01 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2016-06-14 13:47:01 +0000
commit30934c5da53286d78371d396578a757c63942bc9 (patch)
treec10cec8d883105dbb3d15047b89f3ff821d25aed /gcc/genmatch.c
parent8c83f71d3b17a8bf136ca0243397dad75ea698f0 (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.c10
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)