------- 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