re PR middle-end/30142 ([meta-bug] invalid gimple)

2009-01-01  Andrew Pinski  <pinskia@gmail.com>

        PR middle-end/30142
        * tree-cfg.c (verify_expr): Add INDIRECT_REF case.  Change MODIFY_EXPR
        case to be an error.

From-SVN: r143001
This commit is contained in:
Andrew Pinski 2009-01-01 16:14:47 -08:00 committed by Andrew Pinski
parent 7a7d8fab4c
commit 26de0bcbbe
2 changed files with 17 additions and 8 deletions

View file

@ -1,3 +1,9 @@
2009-01-01 Andrew Pinski <pinskia@gmail.com>
PR middle-end/30142
* tree-cfg.c (verify_expr): Add INDIRECT_REF case. Change MODIFY_EXPR
case to be an error.
2009-01-02 Ben Elliston <bje@au.ibm.com>
* config/fp-bit.h (pack_d): Constify argument.

View file

@ -2805,6 +2805,15 @@ verify_expr (tree *tp, int *walk_subtrees, void *data ATTRIBUTE_UNUSED)
}
break;
case INDIRECT_REF:
x = TREE_OPERAND (t, 0);
if (!is_gimple_reg (x) && !is_gimple_min_invariant (x))
{
error ("Indirect reference's operand is not a register or a constant.");
return x;
}
break;
case ASSERT_EXPR:
x = fold (ASSERT_EXPR_COND (t));
if (x == boolean_false_node)
@ -2815,14 +2824,8 @@ verify_expr (tree *tp, int *walk_subtrees, void *data ATTRIBUTE_UNUSED)
break;
case MODIFY_EXPR:
x = TREE_OPERAND (t, 0);
if (TREE_CODE (x) == BIT_FIELD_REF
&& is_gimple_reg (TREE_OPERAND (x, 0)))
{
error ("GIMPLE register modified with BIT_FIELD_REF");
return t;
}
break;
error ("MODIFY_EXPR not expected while having tuples.");
return x;
case ADDR_EXPR:
{