------- Additional Comments From ebotcazou at gcc dot gnu dot org 2005-06-07 12:16 ------- This worked in 3.4.x because we added a conversion operator:
tree_transform <N_Return_Statement>: expand_return (build_binary_op (MODIFY_EXPR, NULL_TREE, DECL_RESULT (current_function_decl), gnu_ret_val)); In 4.x we directly build a MODIFY_EXPR: gnat_to_gnu <N_Return_Statement>: if (gnu_ret_val) gnu_result = build2 (MODIFY_EXPR, TREE_TYPE (gnu_ret_val), gnu_lhs, gnu_ret_val); Reinstating build_binary_op yields an ICE in the gimplifier instead, so either build_binary_op or the gimplifier would probably need to be tweaked a bit. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21937