From 26de0bcbbed0062d9b70b249dfafcfa8231cac7f Mon Sep 17 00:00:00 2001 From: Andrew Pinski Date: Thu, 1 Jan 2009 16:14:47 -0800 Subject: [PATCH] re PR middle-end/30142 ([meta-bug] invalid gimple) 2009-01-01 Andrew Pinski PR middle-end/30142 * tree-cfg.c (verify_expr): Add INDIRECT_REF case. Change MODIFY_EXPR case to be an error. From-SVN: r143001 --- gcc/ChangeLog | 6 ++++++ gcc/tree-cfg.c | 19 +++++++++++-------- 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8cb8a92304a..ad3343ab5f9 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2009-01-01 Andrew Pinski + + 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 * config/fp-bit.h (pack_d): Constify argument. diff --git a/gcc/tree-cfg.c b/gcc/tree-cfg.c index 62a4e89fa7f..5551cace2db 100644 --- a/gcc/tree-cfg.c +++ b/gcc/tree-cfg.c @@ -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: {