From: Jens Remus Date: Thu, 7 Mar 2024 11:23:25 +0000 (+0100) Subject: gas: Don't skip SFrame FDE if .cfi_register specifies RA w/o tracking X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5cfabd629e91a14a0129cd80132ad1b2dde3fd72;p=thirdparty%2Fbinutils-gdb.git gas: Don't skip SFrame FDE if .cfi_register specifies RA w/o tracking Do not skip SFrame FDE if .cfi_register specifies RA register without RA tracking being actually used. Without RA tracking the register contents can always be restored from the stack using the fixed RA offset from CFA. gas/ * gen-sframe.c (sframe_xlate_do_register): Do not skip SFrame FDE if .cfi_register specifies RA register without RA tracking being used. Signed-off-by: Jens Remus --- diff --git a/gas/gen-sframe.c b/gas/gen-sframe.c index 8c5a4763663..1da7a773771 100644 --- a/gas/gen-sframe.c +++ b/gas/gen-sframe.c @@ -1162,7 +1162,7 @@ sframe_xlate_do_register (struct sframe_xlate_ctx *xlate_ctx ATTRIBUTE_UNUSED, stack trace information. */ if (cfi_insn->u.rr.reg1 == SFRAME_CFA_SP_REG #ifdef SFRAME_FRE_RA_TRACKING - || (cfi_insn->u.rr.reg1 == SFRAME_CFA_RA_REG) + || (sframe_ra_tracking_p () && cfi_insn->u.rr.reg1 == SFRAME_CFA_RA_REG) #endif || cfi_insn->u.rr.reg1 == SFRAME_CFA_FP_REG) {