aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/cp-gimplify.c
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2010-02-16 10:08:23 -0500
committerJason Merrill <jason@gcc.gnu.org>2010-02-16 10:08:23 -0500
commit0d08582ee624ed10c494f72e561f2036ecd227d0 (patch)
tree3f18ccee037dc8af1705b63349871626f3a06335 /gcc/cp/cp-gimplify.c
parent99f51320d47ba6565b21dbf9a1ec999b193fde0a (diff)
downloadgcc-0d08582ee624ed10c494f72e561f2036ecd227d0.zip
gcc-0d08582ee624ed10c494f72e561f2036ecd227d0.tar.gz
gcc-0d08582ee624ed10c494f72e561f2036ecd227d0.tar.bz2
* cp-gimplify.c (cp_gimplify_expr): Fix error recovery.
From-SVN: r156803
Diffstat (limited to 'gcc/cp/cp-gimplify.c')
-rw-r--r--gcc/cp/cp-gimplify.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/gcc/cp/cp-gimplify.c b/gcc/cp/cp-gimplify.c
index 7dc79b2..cf81350 100644
--- a/gcc/cp/cp-gimplify.c
+++ b/gcc/cp/cp-gimplify.c
@@ -560,8 +560,10 @@ cp_gimplify_expr (tree *expr_p, gimple_seq *pre_p, gimple_seq *post_p)
tree op0 = TREE_OPERAND (*expr_p, 0);
tree op1 = TREE_OPERAND (*expr_p, 1);
- if ((TYPE_STRUCTURAL_EQUALITY_P (TREE_TYPE (op0))
- || TYPE_STRUCTURAL_EQUALITY_P (TREE_TYPE (op1)))
+ if (!error_operand_p (op0)
+ && !error_operand_p (op1)
+ && (TYPE_STRUCTURAL_EQUALITY_P (TREE_TYPE (op0))
+ || TYPE_STRUCTURAL_EQUALITY_P (TREE_TYPE (op1)))
&& !useless_type_conversion_p (TREE_TYPE (op1), TREE_TYPE (op0)))
TREE_OPERAND (*expr_p, 1) = build1 (VIEW_CONVERT_EXPR,
TREE_TYPE (op0), op1);