Browse Source

* dw2gencfi.c (select_cie_for_fde): When separating CIE out

from FDE, treat a CFI_escape as we do a DW_CFA_advance_loc.
jimb-rda-nptl-branch
Alan Modra 22 years ago
parent
commit
e9fad6911f
  1. 5
      gas/ChangeLog
  2. 11
      gas/dw2gencfi.c

5
gas/ChangeLog

@ -1,3 +1,8 @@
2004-09-09 Alan Modra <amodra@bigpond.net.au>
* dw2gencfi.c (select_cie_for_fde): When separating CIE out
from FDE, treat a CFI_escape as we do a DW_CFA_advance_loc.
2004-09-08 Paul Brook <paul@codesourcery.com>
* config/obj-elf.c (obj_elf_section_type): Handle init_array,

11
gas/dw2gencfi.c

@ -975,8 +975,12 @@ select_cie_for_fde (struct fde_entry *fde, struct cfi_insn_data **pfirst)
}
/* Success if we reached the end of the CIE list, and we've either
run out of FDE entries or we've encountered an advance. */
if (i == cie->last && (!j || j->insn == DW_CFA_advance_loc))
run out of FDE entries or we've encountered an advance or
escape. */
if (i == cie->last
&& (!j
|| j->insn == DW_CFA_advance_loc
|| j->insn == CFI_escape))
{
*pfirst = j;
return cie;
@ -992,7 +996,8 @@ select_cie_for_fde (struct fde_entry *fde, struct cfi_insn_data **pfirst)
cie->first = fde->data;
for (i = cie->first; i ; i = i->next)
if (i->insn == DW_CFA_advance_loc)
if (i->insn == DW_CFA_advance_loc
|| i->insn == CFI_escape)
break;
cie->last = i;

Loading…
Cancel
Save