tree-cfg.c (verify_gimple_assign_single): Implement verification for COND_EXPR rhs.
authorRichard Guenther <rguenther@suse.de>
Sun, 30 May 2010 15:26:53 +0000 (15:26 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Sun, 30 May 2010 15:26:53 +0000 (15:26 +0000)
2010-05-30  Richard Guenther  <rguenther@suse.de>

* tree-cfg.c (verify_gimple_assign_single): Implement
verification for COND_EXPR rhs.

From-SVN: r160055

gcc/ChangeLog
gcc/tree-cfg.c

index 87f74a6..26b1dbb 100644 (file)
@@ -1,3 +1,8 @@
+2010-05-30  Richard Guenther  <rguenther@suse.de>
+
+       * tree-cfg.c (verify_gimple_assign_single): Implement
+       verification for COND_EXPR rhs.
+
 2010-05-30  Jan Hubicka  <jh@suse.cz>
 
        * cgraph.h (cgraph_dump_file): Declare.
index fc6ee35..18754c4 100644 (file)
@@ -3608,6 +3608,20 @@ verify_gimple_assign_single (gimple stmt)
       return res;
 
     case COND_EXPR:
+      if (!is_gimple_reg (lhs)
+         || (!is_gimple_reg (TREE_OPERAND (rhs1, 0))
+             && !COMPARISON_CLASS_P (TREE_OPERAND (rhs1, 0)))
+         || (!is_gimple_reg (TREE_OPERAND (rhs1, 1))
+             && !is_gimple_min_invariant (TREE_OPERAND (rhs1, 1)))
+         || (!is_gimple_reg (TREE_OPERAND (rhs1, 2))
+             && !is_gimple_min_invariant (TREE_OPERAND (rhs1, 2))))
+       {
+         error ("invalid COND_EXPR in gimple assignment");
+         debug_generic_stmt (rhs1);
+         return true;
+       }
+      return res;
+
     case CONSTRUCTOR:
     case OBJ_TYPE_REF:
     case ASSERT_EXPR: