From: rguenth Date: Sun, 30 May 2010 15:26:53 +0000 (+0000) Subject: 2010-05-30 Richard Guenther X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=22ada416b097ea9dccb5be7a85d20330581456d9;p=thirdparty%2Fgcc.git 2010-05-30 Richard Guenther * tree-cfg.c (verify_gimple_assign_single): Implement verification for COND_EXPR rhs. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@160055 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 87f74a699014..26b1dbb059f7 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2010-05-30 Richard Guenther + + * tree-cfg.c (verify_gimple_assign_single): Implement + verification for COND_EXPR rhs. + 2010-05-30 Jan Hubicka * cgraph.h (cgraph_dump_file): Declare. diff --git a/gcc/tree-cfg.c b/gcc/tree-cfg.c index fc6ee350ae30..18754c48f98e 100644 --- a/gcc/tree-cfg.c +++ b/gcc/tree-cfg.c @@ -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: