mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-30 13:33:53 +08:00
PR27723, Internal error in select_cie_for_fde
PR 27723 * dw2gencfi.c (select_cie_for_fde): Handle DW_CFA_val_offset, DW_CFA_GNU_window_save and DW_CFA_restore_state.
This commit is contained in:
parent
6cacd44948
commit
c159f35225
@ -1,3 +1,9 @@
|
||||
2021-04-14 Alan Modra <amodra@gmail.com>
|
||||
|
||||
PR 27723
|
||||
* dw2gencfi.c (select_cie_for_fde): Handle DW_CFA_val_offset,
|
||||
DW_CFA_GNU_window_save and DW_CFA_restore_state.
|
||||
|
||||
2021-04-13 Alan Modra <amodra@gmail.com>
|
||||
|
||||
* testsuite/gas/m68hc11/m68hc11.exp (gas_m68hc11_message): Don't
|
||||
|
@ -2100,6 +2100,7 @@ select_cie_for_fde (struct fde_entry *fde, bool eh_frame,
|
||||
|
||||
case DW_CFA_offset:
|
||||
case DW_CFA_def_cfa:
|
||||
case DW_CFA_val_offset:
|
||||
if (i->u.ri.reg != j->u.ri.reg)
|
||||
goto fail;
|
||||
if (i->u.ri.offset != j->u.ri.offset)
|
||||
@ -2129,6 +2130,8 @@ select_cie_for_fde (struct fde_entry *fde, bool eh_frame,
|
||||
case CFI_escape:
|
||||
case CFI_val_encoded_addr:
|
||||
case CFI_label:
|
||||
case DW_CFA_restore_state:
|
||||
case DW_CFA_GNU_window_save:
|
||||
/* Don't bother matching these for now. */
|
||||
goto fail;
|
||||
|
||||
@ -2144,6 +2147,7 @@ select_cie_for_fde (struct fde_entry *fde, bool eh_frame,
|
||||
&& (!j
|
||||
|| j->insn == DW_CFA_advance_loc
|
||||
|| j->insn == DW_CFA_remember_state
|
||||
|| j->insn == DW_CFA_GNU_window_save
|
||||
|| j->insn == CFI_escape
|
||||
|| j->insn == CFI_val_encoded_addr
|
||||
|| j->insn == CFI_label))
|
||||
|
Loading…
Reference in New Issue
Block a user