[PATCH 7/9] gas: Warn if SFrame FDE is skipped due to non-default return column
Jens Remus
jremus@linux.ibm.com
Thu Feb 22 16:01:21 GMT 2024
More information about the Binutils mailing list
Thu Feb 22 16:01:21 GMT 2024
- Previous message (by thread): [PATCH 6/9] gas: Skip SFrame FDE if CFI specifies non-FP/SP base register
- Next message (by thread): [PATCH 8/9] gas: User readable warnings if SFrame FDE is not generated
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Print a warning message if SFrame FDE is skipped due to a non-default DWARF return column (i.e. return address (RA) register number). This may be caused by the use of CFI directive .cfi_return_column with a non-default return address (RA) register number in the processed assembler source code. Warning: skipping SFrame FDE due to non-default DWARF return column gas/ * gen-sframe.c: Warn if SFrame FDE is skipped due to non-default DWARF return column. gas/testsuite/ * gas/cfi-sframe/common-empty-3.d: Update test case to expect for new warning message when SFrame FDE is skipped due to a non-default DWARF return column. Reviewed-by: Andreas Krebbel <krebbel@linux.ibm.com> Signed-off-by: Jens Remus <jremus@linux.ibm.com> --- Notes (jremus): Without this patch the assembler would erroneously generate bad SFrame information for the s390-specific SFrame error test case 4, that gets introduced by patch "s390: Initial support to generate .sframe from CFI directives in assembler". gas/gen-sframe.c | 8 ++++++-- gas/testsuite/gas/cfi-sframe/common-empty-3.d | 1 + 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/gas/gen-sframe.c b/gas/gen-sframe.c index 1269b2b77c54..28b49a2a8425 100644 --- a/gas/gen-sframe.c +++ b/gas/gen-sframe.c @@ -1345,7 +1345,10 @@ sframe_do_fde (struct sframe_xlate_ctx *xlate_ctx, /* If the return column is not RIP, SFrame format cannot represent it. */ if (xlate_ctx->dw_fde->return_column != DWARF2_DEFAULT_RETURN_COLUMN) - return SFRAME_XLATE_ERR_NOTREPRESENTED; + { + as_warn (_("skipping SFrame FDE due to non-default DWARF return column")); + return SFRAME_XLATE_ERR_NOTREPRESENTED; + } /* Iterate over the CFIs and create SFrame FREs. */ for (cfi_insn = dw_fde->data; cfi_insn; cfi_insn = cfi_insn->next) @@ -1355,7 +1358,8 @@ sframe_do_fde (struct sframe_xlate_ctx *xlate_ctx, if (err != SFRAME_XLATE_OK) { /* Skip generating SFrame stack trace info for the function if any - offending CFI is encountered by sframe_do_cfi_insn (). */ + offending CFI is encountered by sframe_do_cfi_insn (). Warning + message already printed by sframe_do_cfi_insn (). */ return err; /* Return the error code. */ } } diff --git a/gas/testsuite/gas/cfi-sframe/common-empty-3.d b/gas/testsuite/gas/cfi-sframe/common-empty-3.d index 5914c620760d..d17521dd88ea 100644 --- a/gas/testsuite/gas/cfi-sframe/common-empty-3.d +++ b/gas/testsuite/gas/cfi-sframe/common-empty-3.d @@ -1,4 +1,5 @@ #as: --gsframe +#warning: skipping SFrame FDE due to non-default DWARF return column #objdump: --sframe=.sframe #name: SFrame supports only default return column #... -- 2.40.1
- Previous message (by thread): [PATCH 6/9] gas: Skip SFrame FDE if CFI specifies non-FP/SP base register
- Next message (by thread): [PATCH 8/9] gas: User readable warnings if SFrame FDE is not generated
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Binutils mailing list