mirror of
https://github.com/darlinghq/darling-gdb.git
synced 2025-02-06 09:19:05 +00:00
Refine .cfi_sections check to only consider compact eh_frame
The .cfi_sections directive can be safely used multiple times with different sections named at any time unless the compact form of exception handling is requested after CFI information has been emitted. Only the compact form of CFI information changes the way in which CFI is generated and therefore cannot be retrospectively requested after generating CFI information. gas/ PR gas/20648 * dw2gencfi.c (dot_cfi_sections): Refine the check for inconsistent .cfi_sections to only consider compact vs non compact forms. * testsuite/gas/cfi/cfi-common-9.d: New file. * testsuite/gas/cfi/cfi-common-9.s: New file. * testsuite/gas/cfi/cfi.exp: Run new test.
This commit is contained in:
parent
ee8da4b839
commit
3d3424e9a8
@ -1,3 +1,13 @@
|
||||
2016-10-06 Matthew Fortune <matthew.fortune@imgtec.com>
|
||||
|
||||
PR gas/20648
|
||||
* dw2gencfi.c (dot_cfi_sections): Refine the check for
|
||||
inconsistent .cfi_sections to only consider compact vs non
|
||||
compact forms.
|
||||
* testsuite/gas/cfi/cfi-common-9.d: New file.
|
||||
* testsuite/gas/cfi/cfi-common-9.s: New file.
|
||||
* testsuite/gas/cfi/cfi.exp: Run new test.
|
||||
|
||||
2016-10-06 Alan Modra <amodra@gmail.com>
|
||||
|
||||
* app.c: Add missing fall through comments.
|
||||
|
@ -1269,7 +1269,10 @@ dot_cfi_sections (int ignored ATTRIBUTE_UNUSED)
|
||||
}
|
||||
|
||||
demand_empty_rest_of_line ();
|
||||
if (cfi_sections_set && cfi_sections != sections)
|
||||
if (cfi_sections_set
|
||||
&& (sections & (CFI_EMIT_eh_frame | CFI_EMIT_eh_frame_compact))
|
||||
&& (cfi_sections & (CFI_EMIT_eh_frame | CFI_EMIT_eh_frame_compact))
|
||||
!= (sections & (CFI_EMIT_eh_frame | CFI_EMIT_eh_frame_compact)))
|
||||
as_bad (_("inconsistent uses of .cfi_sections"));
|
||||
cfi_sections = sections;
|
||||
}
|
||||
|
23
gas/testsuite/gas/cfi/cfi-common-9.d
Normal file
23
gas/testsuite/gas/cfi/cfi-common-9.d
Normal file
@ -0,0 +1,23 @@
|
||||
#objdump: -Wf
|
||||
#name: CFI common 9
|
||||
#...
|
||||
Contents of the .eh_frame section:
|
||||
|
||||
00000000 0+0010 0+0000 CIE
|
||||
Version: 1
|
||||
Augmentation: "zR"
|
||||
Code alignment factor: .*
|
||||
Data alignment factor: .*
|
||||
Return address column: .*
|
||||
Augmentation data: [01]b
|
||||
|
||||
DW_CFA_nop
|
||||
DW_CFA_nop
|
||||
DW_CFA_nop
|
||||
|
||||
00000014 0+00(10|18|1c|20) 0+0018 FDE cie=0+0000 pc=.*
|
||||
|
||||
DW_CFA_nop
|
||||
DW_CFA_nop
|
||||
DW_CFA_nop
|
||||
#...
|
4
gas/testsuite/gas/cfi/cfi-common-9.s
Normal file
4
gas/testsuite/gas/cfi/cfi-common-9.s
Normal file
@ -0,0 +1,4 @@
|
||||
.cfi_sections .eh_frame
|
||||
.cfi_startproc simple
|
||||
.cfi_sections .debug_frame
|
||||
.cfi_endproc
|
@ -136,4 +136,5 @@ if { ![istarget "hppa64*-*"] } then {
|
||||
}
|
||||
run_dump_test "cfi-common-7"
|
||||
run_dump_test "cfi-common-8"
|
||||
run_dump_test "cfi-common-9"
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user