aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2004-09-09 13:32:46 +0000
committerAlan Modra <amodra@gmail.com>2004-09-09 13:32:46 +0000
commite9fad6911f0d1bb2dcf01ade72ff978b4b273bb4 (patch)
tree692421f15dbba546e963c230d8083231c379aa6b /gas
parent2a309db0409b58471fb0490e6bfdf18180409e38 (diff)
downloadbinutils-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/ChangeLog5
-rw-r--r--gas/dw2gencfi.c11
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;