diff options
author | Indu Bhagat <indu.bhagat@oracle.com> | 2024-01-15 00:59:43 -0800 |
---|---|---|
committer | Indu Bhagat <indu.bhagat@oracle.com> | 2024-01-15 03:31:35 -0800 |
commit | 040622a7299dbf3d037490093a5506e08369ee96 (patch) | |
tree | 83bcb22c625b3d1ba5a3e332559eac8ed427f3a6 /gas/dw2gencfi.c | |
parent | 71a17ca2f0cc4d364e157f00299f77b05fdec263 (diff) | |
download | fsf-binutils-gdb-040622a7299dbf3d037490093a5506e08369ee96.zip fsf-binutils-gdb-040622a7299dbf3d037490093a5506e08369ee96.tar.gz fsf-binutils-gdb-040622a7299dbf3d037490093a5506e08369ee96.tar.bz2 |
gas: dw2gencfi: expose a new cfi_set_last_fde API
gas/
* dw2gencfi.c (cfi_set_last_fde): New definition.
(dot_cfi_endproc): Use it.
(dot_cfi_fde_data): Likewise.
(dot_cfi_inline_lsda): Likewise.
* dw2gencfi.h (struct fde_entry): New declaration.
(cfi_set_last_fde): Likewise.
Diffstat (limited to 'gas/dw2gencfi.c')
-rw-r--r-- | gas/dw2gencfi.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/gas/dw2gencfi.c b/gas/dw2gencfi.c index eccfd64..216da39 100644 --- a/gas/dw2gencfi.c +++ b/gas/dw2gencfi.c @@ -481,6 +481,13 @@ cfi_end_fde (symbolS *label) frchain_now->frch_cfi_data = NULL; } +/* Set the last FDE .*/ +void +cfi_set_last_fde (struct fde_entry *fde) +{ + last_fde = fde; +} + /* Set the return column for the current FDE. */ void @@ -1330,7 +1337,7 @@ dot_cfi_endproc (int ignored ATTRIBUTE_UNUSED) return; } - last_fde = frchain_now->frch_cfi_data->cur_fde_data; + cfi_set_last_fde (frchain_now->frch_cfi_data->cur_fde_data); cfi_end_fde (symbol_temp_new_now ()); @@ -1415,7 +1422,7 @@ dot_cfi_fde_data (int ignored ATTRIBUTE_UNUSED) return; } - last_fde = frchain_now->frch_cfi_data->cur_fde_data; + cfi_set_last_fde (frchain_now->frch_cfi_data->cur_fde_data); if ((all_cfi_sections & CFI_EMIT_target) != 0 || (all_cfi_sections & CFI_EMIT_eh_frame_compact) != 0) @@ -1568,7 +1575,7 @@ dot_cfi_inline_lsda (int ignored ATTRIBUTE_UNUSED) if (last_fde->eh_header_type == EH_COMPACT_HAS_LSDA) output_compact_unwind_data (last_fde, align); - last_fde = NULL; + cfi_set_last_fde (NULL); return; } |