Commit 846d943b by Chung-Lin Tang Committed by Jeff Law

targhooks.c (std_gimplify_va_arg_expr): Properly handle case of when…

targhooks.c (std_gimplify_va_arg_expr): Properly handle case of when TARGET_SPLIT_COMPLEX_ARG is defined.

	* targhooks.c (std_gimplify_va_arg_expr): Properly handle case of when
	TARGET_SPLIT_COMPLEX_ARG is defined.

From-SVN: r263671
parent a5a35247
2018-08-20 Chung-Lin Tang <cltang@codesourcery.com>
* targhooks.c (std_gimplify_va_arg_expr): Properly handle case of when
TARGET_SPLIT_COMPLEX_ARG is defined.
2018-08-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
* expr.c (store_field): Change gcc_assert to gcc_checking_assert.
......
......@@ -2154,6 +2154,23 @@ std_gimplify_va_arg_expr (tree valist, tree type, gimple_seq *pre_p,
if (indirect)
type = build_pointer_type (type);
if (targetm.calls.split_complex_arg
&& TREE_CODE (type) == COMPLEX_TYPE
&& targetm.calls.split_complex_arg (type))
{
tree real_part, imag_part;
real_part = std_gimplify_va_arg_expr (valist,
TREE_TYPE (type), pre_p, NULL);
real_part = get_initialized_tmp_var (real_part, pre_p, NULL);
imag_part = std_gimplify_va_arg_expr (unshare_expr (valist),
TREE_TYPE (type), pre_p, NULL);
imag_part = get_initialized_tmp_var (imag_part, pre_p, NULL);
return build2 (COMPLEX_EXPR, type, real_part, imag_part);
}
align = PARM_BOUNDARY / BITS_PER_UNIT;
boundary = targetm.calls.function_arg_boundary (TYPE_MODE (type), type);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment