[binutils-gdb] gas/dw2gencfi: correct .sframe section conditional

Jan Beulich jbeulich@sourceware.org
Fri Oct 4 07:38:22 GMT 2024


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=833c28eefb87de08bee1a696721d746441d096d6

commit 833c28eefb87de08bee1a696721d746441d096d6
Author: Jan Beulich <jbeulich@suse.com>
Date:   Fri Oct 4 09:36:56 2024 +0200

    gas/dw2gencfi: correct .sframe section conditional
    
    While originally this was in preparation of a subsequent change making
    SUPPORT_FRAME_LINKONCE potentially dependent on a global variable, the
    construct appears unlikely to have been correct in the first place: The
    variable would have been passed reliably uninitialized when
    SUPPORT_FRAME_LINKONCE is build-time true.
    
    While there correct indentation of the parameters passed to
    get_cfi_seg().

Diff:
---
 gas/dw2gencfi.c | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/gas/dw2gencfi.c b/gas/dw2gencfi.c
index db0261dd187..ca7605e7928 100644
--- a/gas/dw2gencfi.c
+++ b/gas/dw2gencfi.c
@@ -2498,16 +2498,15 @@ cfi_finish (void)
 	- .sframe in the .cfi_sections directive.  */
   if (flag_gen_sframe || (all_cfi_sections & CFI_EMIT_sframe) != 0)
     {
-      if (support_sframe_p ())
+      if (support_sframe_p () && !SUPPORT_FRAME_LINKONCE)
 	{
 	  segT sframe_seg;
 	  int alignment = ffs (DWARF2_ADDR_SIZE (stdoutput)) - 1;
 
-	  if (!SUPPORT_FRAME_LINKONCE)
-	    sframe_seg = get_cfi_seg (NULL, ".sframe",
-					 (SEC_ALLOC | SEC_LOAD | SEC_DATA
-					  | DWARF2_EH_FRAME_READ_ONLY),
-					 alignment);
+	  sframe_seg = get_cfi_seg (NULL, ".sframe",
+				    (SEC_ALLOC | SEC_LOAD | SEC_DATA
+				     | DWARF2_EH_FRAME_READ_ONLY),
+				    alignment);
 	  output_sframe (sframe_seg);
 	}
       else


More information about the Binutils-cvs mailing list