re PR tree-optimization/80821 (genmatch conflicting predicates)
authorRichard Biener <rguenther@suse.de>
Fri, 19 May 2017 11:13:48 +0000 (11:13 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Fri, 19 May 2017 11:13:48 +0000 (11:13 +0000)
2017-05-19  Richard Biener  <rguenther@suse.de>

PR build/80821
* genmatch.c (dt_node::gen_kids_1): Add missing scope around
predicate evaluation.

From-SVN: r248264

gcc/ChangeLog
gcc/genmatch.c

index 3b700e0f1edae37ed9b89e33315a31a63a40cb01..9e386f7593389b9215bf4f949bd5a04b47214e45 100644 (file)
@@ -1,3 +1,9 @@
+2017-05-19  Richard Biener  <rguenther@suse.de>
+
+       PR build/80821
+       * genmatch.c (dt_node::gen_kids_1): Add missing scope around
+       predicate evaluation.
+
 2017-05-19  Jan Hubicka  <hubicka@ucw.cz>
 
        * ipa-inline.h (ipa_call_summary): Turn sizes into signed;
index 5621aa05b59d2f1dd19b66c466bf3c3c124d67c7..2c3183b25af5bc0990957640d52f9f7e05e0b1e7 100644 (file)
@@ -3005,6 +3005,8 @@ dt_node::gen_kids_1 (FILE *f, int indent, bool gimple,
       expr *e = as_a <expr *> (preds[i]->op);
       predicate_id *p = as_a <predicate_id *> (e->operation);
       preds[i]->get_name (kid_opname);
+      fprintf_indent (f, indent, "{\n");
+      indent += 2;
       fprintf_indent (f, indent, "tree %s_pops[%d];\n", kid_opname, p->nargs);
       fprintf_indent (f, indent, "if (%s_%s (%s, %s_pops%s))\n",
               gimple ? "gimple" : "tree",
@@ -3020,6 +3022,8 @@ dt_node::gen_kids_1 (FILE *f, int indent, bool gimple,
        }
       preds[i]->gen_kids (f, indent + 4, gimple);
       fprintf (f, "}\n");
+      indent -= 2;
+      fprintf_indent (f, indent, "}\n");
     }
 
   for (unsigned i = 0; i < others.length (); ++i)