[binutils-gdb] gas: sframe: Add test for signal frame with unsupported CFI
Jens Remus
jremus@sourceware.org
Wed Aug 12 12:40:48 GMT 2026
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=ce67ec902d836898d93c62f71ff2e97f774a0b95
commit ce67ec902d836898d93c62f71ff2e97f774a0b95
Author: Jens Remus <jremus@linux.ibm.com>
Date: Wed Aug 12 14:39:50 2026 +0200
gas: sframe: Add test for signal frame with unsupported CFI
Usually if the generation of SFrame from CFI directives encounters
unsupported CFI the generation of SFrame FDE is skipped. For signal
frames (.cfi_signal_frame) an "empty" FDE without any FREs is generated
instead.
This adds a test for the issue fixed with commit fa11363bc9ad ("Ensure
that sframe_xlate_ctx_cleanup() doe snot leave any dangling pointers").
gas/testsuite/
* gas/cfi-sframe/cfi-sframe.exp (cfi-sframe-common-14): Run
new common test.
* gas/cfi-sframe/cfi-sframe-common-14.d: New common test for
signal frame with unsupported CFI.
gas/cfi-sframe/cfi-sframe-common-14.s: Likewise.
Signed-off-by: Jens Remus <jremus@linux.ibm.com>
Diff:
---
gas/testsuite/gas/cfi-sframe/cfi-sframe-common-14.d | 20 ++++++++++++++++++++
gas/testsuite/gas/cfi-sframe/cfi-sframe-common-14.s | 5 +++++
gas/testsuite/gas/cfi-sframe/cfi-sframe.exp | 1 +
3 files changed, 26 insertions(+)
diff --git a/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-14.d b/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-14.d
new file mode 100644
index 00000000000..dcceab8d69b
--- /dev/null
+++ b/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-14.d
@@ -0,0 +1,20 @@
+#as: --gsframe
+#objdump: --sframe=.sframe
+#name: Signal Frame with unsupported CFI
+#warning: \.cfi_def_cfa_offset with unsupported offset value
+#...
+Contents of the SFrame section .sframe:
+
+ Header :
+
+ Version: SFRAME_VERSION_3
+ Flags: SFRAME_F_FDE_FUNC_START_PCREL
+#? CFA fixed FP offset: \-?\d+
+#? CFA fixed RA offset: \-?\d+
+ Num FDEs: 1
+ Num FREs: 0
+
+ Function Index :
+ func idx \[0\]: pc = 0x0, size = 4 bytes, attr = \"S\"
+ STARTPC + CFA + FP + RA +
+#pass
diff --git a/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-14.s b/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-14.s
new file mode 100644
index 00000000000..9d6cf2a17e8
--- /dev/null
+++ b/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-14.s
@@ -0,0 +1,5 @@
+ .cfi_startproc
+ .cfi_signal_frame
+ .long 0
+ .cfi_def_cfa_offset 1099511627808
+ .cfi_endproc
diff --git a/gas/testsuite/gas/cfi-sframe/cfi-sframe.exp b/gas/testsuite/gas/cfi-sframe/cfi-sframe.exp
index ba6cbc13f72..d7418726f27 100644
--- a/gas/testsuite/gas/cfi-sframe/cfi-sframe.exp
+++ b/gas/testsuite/gas/cfi-sframe/cfi-sframe.exp
@@ -50,6 +50,7 @@ if { ([istarget "x86_64-*-*"] || [istarget "aarch64*-*-*"]
run_dump_test "cfi-sframe-common-11"
run_dump_test "cfi-sframe-common-12"
run_dump_test "cfi-sframe-common-13"
+ run_dump_test "cfi-sframe-common-14"
run_dump_test "common-empty-2"
run_dump_test "common-empty-3"
More information about the Binutils-cvs
mailing list