Hello! Attached patch corrects handing of split _Complex float variable arguments. Alpha is not able to pass 32bit floats in float registers as variable arguments (see the comment in alpha_pass_by_reference), so we pass them by reference. However, complex float arguments are split to their real and imaginary part and passed separately. When passed by reference, every part is passed separately by a separate reference. Attached patch fixes this oversight in alpha_gimplify_va_arg. The patch fixes: FAIL: gcc.dg/compat/scalar-by-value-4 c_compat_x_tst.o-c_compat_y_tst.o execute FAIL: gcc.dg/compat/scalar-return-4 c_compat_x_tst.o-c_compat_y_tst.o execute 2019-01-16 Uroš Bizjak * config/alpha/alpha.c (alpha_gimplify_va_arg): Handle split indirect COMPLEX_TYPE arguments. Bootstrapped and regression tested on alphaev68-linux-gnu. Committed to mainline SVN. Uros.