genmatch.c (expr::gen_transform): For conditions, guess the type from the second...
authorMarc Glisse <marc.glisse@inria.fr>
Mon, 8 Jun 2015 12:20:43 +0000 (14:20 +0200)
committerMarc Glisse <glisse@gcc.gnu.org>
Mon, 8 Jun 2015 12:20:43 +0000 (12:20 +0000)
2015-06-08  Marc Glisse  <marc.glisse@inria.fr>

* genmatch.c (expr::gen_transform): For conditions, guess the type
from the second operand.

From-SVN: r224220

gcc/ChangeLog
gcc/genmatch.c

index e33780fe9428e7bfb1922476eaa5502a8f323907..e7616d3226e8a99be7366b143bf435cf32d66918 100644 (file)
@@ -1,3 +1,8 @@
+2015-06-08  Marc Glisse  <marc.glisse@inria.fr>
+
+       * genmatch.c (expr::gen_transform): For conditions, guess the type
+       from the second operand.
+
 2015-06-08  Tom de Vries  <tom@codesourcery.com>
 
        PR tree-optimization/66442
index 9dc3b8cf9521cfddfaae302c22c58df88abc6eb7..f27170381d8e3666e9cf7ac1372c9552928950ea 100644 (file)
@@ -1709,6 +1709,13 @@ expr::gen_transform (FILE *f, const char *dest, bool gimple, int depth,
       sprintf (optype, "boolean_type_node");
       type = optype;
     }
+  else if (*operation == COND_EXPR
+          || *operation == VEC_COND_EXPR)
+    {
+      /* Conditions are of the same type as their first alternative.  */
+      sprintf (optype, "TREE_TYPE (ops%d[1])", depth);
+      type = optype;
+    }
   else
     {
       /* Other operations are of the same type as their first operand.  */