trans.c (call_to_gnu): Always set the source location on the call expression.

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

From-SVN: r130184
This commit is contained in:
Eric Botcazou 2007-11-14 18:31:57 +00:00 committed by Eric Botcazou
parent d76575caa5
commit a01e283ff5
2 changed files with 9 additions and 4 deletions

View File

@ -1,3 +1,9 @@
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> 2007-11-14 Samuel Tardieu <sam@rfc1149.net>
* adaint.c init.c initialize.c link.c: Remove system-specific * adaint.c init.c initialize.c link.c: Remove system-specific

View File

@ -2311,6 +2311,7 @@ call_to_gnu (Node_Id gnat_node, tree *gnu_result_type_p, tree gnu_target)
gnu_subprog_call = build_call_list (TREE_TYPE (gnu_subprog_type), gnu_subprog_call = build_call_list (TREE_TYPE (gnu_subprog_type),
gnu_subprog_addr, gnu_subprog_addr,
nreverse (gnu_actual_list)); 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 /* 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 call. We must not emit the call directly here because this might be
@ -2336,6 +2337,7 @@ call_to_gnu (Node_Id gnat_node, tree *gnu_result_type_p, tree gnu_target)
tree gnu_target_address tree gnu_target_address
= build_unary_op (ADDR_EXPR, NULL_TREE, gnu_target); = build_unary_op (ADDR_EXPR, NULL_TREE, gnu_target);
set_expr_location_from_node (gnu_target_address, gnat_node);
gnu_result gnu_result
= build2 (COMPOUND_EXPR, TREE_TYPE (gnu_target_address), = build2 (COMPOUND_EXPR, TREE_TYPE (gnu_target_address),
@ -2491,10 +2493,7 @@ call_to_gnu (Node_Id gnat_node, tree *gnu_result_type_p, tree gnu_target)
} }
} }
else else
{ append_to_statement_list (gnu_subprog_call, &gnu_before_list);
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_after_list, &gnu_before_list); append_to_statement_list (gnu_after_list, &gnu_before_list);
return gnu_before_list; return gnu_before_list;