+2007-11-14 Eric Botcazou <ebotcazou@adacore.com>
+
+ * trans.c (call_to_gnu): Always set the source location on the call
+ expression. If the function returns-by-target, also set it on the
+ address expression.
+
2007-11-14 Samuel Tardieu <sam@rfc1149.net>
* adaint.c init.c initialize.c link.c: Remove system-specific
gnu_subprog_call = build_call_list (TREE_TYPE (gnu_subprog_type),
gnu_subprog_addr,
nreverse (gnu_actual_list));
+ set_expr_location_from_node (gnu_subprog_call, gnat_node);
/* If we return by passing a target, the result is the target after the
call. We must not emit the call directly here because this might be
tree gnu_target_address
= build_unary_op (ADDR_EXPR, NULL_TREE, gnu_target);
+ set_expr_location_from_node (gnu_target_address, gnat_node);
gnu_result
= build2 (COMPOUND_EXPR, TREE_TYPE (gnu_target_address),
}
}
else
- {
- set_expr_location_from_node (gnu_subprog_call, gnat_node);
- append_to_statement_list (gnu_subprog_call, &gnu_before_list);
- }
+ append_to_statement_list (gnu_subprog_call, &gnu_before_list);
append_to_statement_list (gnu_after_list, &gnu_before_list);
return gnu_before_list;