diff --git a/gcc43-pr35987.patch b/gcc43-pr35987.patch index b3d0b04..4d92234 100644 --- a/gcc43-pr35987.patch +++ b/gcc43-pr35987.patch @@ -1,23 +1,23 @@ 2008-04-21 Jakub Jelinek PR c++/35987 - * typeck.c (cp_build_modify_expr) : Don't build + * typeck.c (build_modify_expr) : Don't build COMPOUND_EXPR if the second argument would be error_mark_node. * g++.dg/other/error28.C: New test. --- gcc/cp/typeck.c.jj 2008-04-18 17:00:44.000000000 +0200 +++ gcc/cp/typeck.c 2008-04-21 16:03:45.000000000 +0200 -@@ -5940,10 +5940,11 @@ cp_build_modify_expr (tree lhs, enum tre +@@ -5667,10 +5667,11 @@ build_modify_expr (tree lhs, enum tree_c lhs = build2 (TREE_CODE (lhs), TREE_TYPE (lhs), stabilize_reference (TREE_OPERAND (lhs, 0)), TREE_OPERAND (lhs, 1)); - return build2 (COMPOUND_EXPR, lhstype, - lhs, -- cp_build_modify_expr (TREE_OPERAND (lhs, 0), -- modifycode, rhs, complain)); -+ newrhs = cp_build_modify_expr (TREE_OPERAND (lhs, 0), -+ modifycode, rhs, complain); +- build_modify_expr (TREE_OPERAND (lhs, 0), +- modifycode, rhs)); ++ newrhs = build_modify_expr (TREE_OPERAND (lhs, 0), ++ modifycode, rhs); + if (newrhs == error_mark_node) + return error_mark_node; + return build2 (COMPOUND_EXPR, lhstype, lhs, newrhs);