Hi all,

This patch fixes the regression to gcc.dg/rtl/aarch64/subs_adds_sp.c that
r271735 caused. This was done by ensuring that the current function's 
frame has
been laid out before checking if return address signing is enabled.

Tested and built on aarch64-none-elf and aarch64-none-linux-gnu.

OK for trunk?

Sam Tebbs

gcc/
2019-06-20  Sam Tebbs<sam.te...@arm.com>

        PR target/90712
        * aarch64/aarch64.c (aarch64_post_cfi_startproc): Replace thunk check
        with a frame laid out check.

diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c
index f8285ac5fac61a4d94008847c1b3e0d2ac79c33b..9f7365a1a324cbeb6ab19e2f133b3cc2ba0ede54 100644
--- a/gcc/config/aarch64/aarch64.c
+++ b/gcc/config/aarch64/aarch64.c
@@ -15702,7 +15702,7 @@ aarch64_asm_output_external (FILE *stream, tree decl, const char* name)
 void
 aarch64_post_cfi_startproc (FILE *f, tree ignored ATTRIBUTE_UNUSED)
 {
-  if (!cfun->is_thunk && aarch64_return_address_signing_enabled ()
+  if (cfun->machine->frame.laid_out && aarch64_return_address_signing_enabled ()
       && aarch64_ra_sign_key == AARCH64_KEY_B)
 	asm_fprintf (f, "\t.cfi_b_key_frame\n");
 }

Reply via email to