From: Richard Biener Date: Thu, 4 Jun 2020 15:26:36 +0000 (+0100) Subject: aarch64: PR target/95526: Fix gimplification of varargs X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=ab56390384cd5168b548ff07e6f0c9c4d41420fb;p=gcc.git aarch64: PR target/95526: Fix gimplification of varargs This patch fixes a latent bug exposed by eb72dc663e9070b281be83a80f6f838a3a878822 in the aarch64 backend that was causing wrong codegen and several testsuite failures. See the discussion on the bug for details. Bootstrapped and regtested on aarch64-linux-gnu. Cleaned up several failing tests and no new fails introduced. 2020-06-04 Richard Biener gcc/: * config/aarch64/aarch64.c (aarch64_gimplify_va_arg_expr): Ensure that tmp_ha is marked TREE_ADDRESSABLE. --- diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c index 6352d4ff78a..97da6076239 100644 --- a/gcc/config/aarch64/aarch64.c +++ b/gcc/config/aarch64/aarch64.c @@ -16370,6 +16370,7 @@ aarch64_gimplify_va_arg_expr (tree valist, tree type, gimple_seq *pre_p, } /* *(field_ptr_t)&ha = *((field_ptr_t)vr_saved_area */ + TREE_ADDRESSABLE (tmp_ha) = 1; tmp_ha = build1 (ADDR_EXPR, field_ptr_t, tmp_ha); addr = t; t = fold_convert (field_ptr_t, addr);