[gcc r11-936] aarch64: PR target/95526: Fix gimplification of varargs

Alex Coplan acoplan@gcc.gnu.org
Thu Jun 4 15:34:20 GMT 2020


https://gcc.gnu.org/g:ab56390384cd5168b548ff07e6f0c9c4d41420fb

commit r11-936-gab56390384cd5168b548ff07e6f0c9c4d41420fb
Author: Richard Biener <rguenther@suse.de>
Date:   Thu Jun 4 16:26:36 2020 +0100

    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  <rguenther@suse.de>
    
    gcc/:
    
            * config/aarch64/aarch64.c (aarch64_gimplify_va_arg_expr):
            Ensure that tmp_ha is marked TREE_ADDRESSABLE.

Diff:
---
 gcc/config/aarch64/aarch64.c | 1 +
 1 file changed, 1 insertion(+)

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);


More information about the Gcc-cvs mailing list