diff options
author | Alan Modra <amodra@gmail.com> | 2004-09-09 13:32:46 +0000 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2004-09-09 13:32:46 +0000 |
commit | e9fad6911f0d1bb2dcf01ade72ff978b4b273bb4 (patch) | |
tree | 692421f15dbba546e963c230d8083231c379aa6b /gas | |
parent | 2a309db0409b58471fb0490e6bfdf18180409e38 (diff) | |
download | binutils-e9fad6911f0d1bb2dcf01ade72ff978b4b273bb4.zip binutils-e9fad6911f0d1bb2dcf01ade72ff978b4b273bb4.tar.gz binutils-e9fad6911f0d1bb2dcf01ade72ff978b4b273bb4.tar.bz2 |
* dw2gencfi.c (select_cie_for_fde): When separating CIE out
from FDE, treat a CFI_escape as we do a DW_CFA_advance_loc.
Diffstat (limited to 'gas')
-rw-r--r-- | gas/ChangeLog | 5 | ||||
-rw-r--r-- | gas/dw2gencfi.c | 11 |
2 files changed, 13 insertions, 3 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index dcfe99b..3ee610f 100644 --- a/gas/ChangeLog +++ b/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, diff --git a/gas/dw2gencfi.c b/gas/dw2gencfi.c index 05d7e3d..3937329 100644 --- a/gas/dw2gencfi.c +++ b/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; |