From: Jason Merrill Date: Tue, 16 Feb 2010 15:08:23 +0000 (-0500) Subject: * cp-gimplify.c (cp_gimplify_expr): Fix error recovery. X-Git-Tag: releases/gcc-4.5.0~760 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=0d08582ee624ed10c494f72e561f2036ecd227d0;p=thirdparty%2Fgcc.git * cp-gimplify.c (cp_gimplify_expr): Fix error recovery. From-SVN: r156803 --- diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 5b433f033c00..4a7b1251e814 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,5 +1,7 @@ 2010-02-16 Jason Merrill + * cp-gimplify.c (cp_gimplify_expr): Fix error recovery. + PR c++/43031 * cp-gimplify.c (cp_gimplify_expr) [MODIFY_EXPR]: Use VIEW_CONVERT_EXPR for conversions between structural equality types diff --git a/gcc/cp/cp-gimplify.c b/gcc/cp/cp-gimplify.c index 7dc79b2554fc..cf8135037e9b 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);