static struct fde_entry *
alloc_fde_entry (void)
{
- struct fde_entry *fde = (struct fde_entry *)
- xcalloc (1, sizeof (struct fde_entry));
+ struct fde_entry *fde = XCNEW (struct fde_entry);
- frchain_now->frch_cfi_data = (struct frch_cfi_data *)
- xcalloc (1, sizeof (struct frch_cfi_data));
+ frchain_now->frch_cfi_data = XCNEW (struct frch_cfi_data);
frchain_now->frch_cfi_data->cur_fde_data = fde;
*last_fde_data = fde;
last_fde_data = &fde->next;
static struct cfi_insn_data *
alloc_cfi_insn_data (void)
{
- struct cfi_insn_data *insn = (struct cfi_insn_data *)
- xcalloc (1, sizeof (struct cfi_insn_data));
+ struct cfi_insn_data *insn = XCNEW (struct cfi_insn_data);
struct fde_entry *cur_fde_data = frchain_now->frch_cfi_data->cur_fde_data;
*cur_fde_data->last = insn;
cfi_set_sections (void)
{
frchain_now->frch_cfi_data->cur_fde_data->sections = all_cfi_sections;
+ cfi_sections_set = TRUE;
}
/* Universal functions to store new instructions. */
cfi_add_CFA_insn (DW_CFA_remember_state);
- p = (struct cfa_save_data *) xmalloc (sizeof (*p));
+ p = XNEW (struct cfa_save_data);
p->cfa_offset = frchain_now->frch_cfi_data->cur_cfa_offset;
p->next = frchain_now->frch_cfi_data->cfa_save_stack;
frchain_now->frch_cfi_data->cfa_save_stack = p;
tail = &head;
do
{
- e = (struct cfi_escape_data *) xmalloc (sizeof (*e));
+ e = XNEW (struct cfi_escape_data);
do_parse_cons_expression (&e->exp, 1);
*tail = e;
tail = &e->next;
demand_empty_rest_of_line ();
if (cfi_sections_set && cfi_sections != sections)
as_bad (_("inconsistent uses of .cfi_sections"));
- cfi_sections_set = TRUE;
cfi_sections = sections;
}
}
demand_empty_rest_of_line ();
+ cfi_sections_set = TRUE;
all_cfi_sections |= cfi_sections;
cfi_set_sections ();
frchain_now->frch_cfi_data->cur_cfa_offset = 0;
demand_empty_rest_of_line ();
+ cfi_sections_set = TRUE;
if ((cfi_sections & CFI_EMIT_target) != 0)
tc_cfi_endproc (last_fde);
}
last_fde = frchain_now->frch_cfi_data->cur_fde_data;
+ cfi_sections_set = TRUE;
if ((cfi_sections & CFI_EMIT_target) != 0
|| (cfi_sections & CFI_EMIT_eh_frame_compact) != 0)
{
num_ops = 0;
do
{
- e = (struct cfi_escape_data *) xmalloc (sizeof (*e));
+ e = XNEW (struct cfi_escape_data);
do_parse_cons_expression (&e->exp, 1);
*tail = e;
tail = &e->next;
num_ops = 3;
last_fde->eh_data_size = num_ops;
- last_fde->eh_data = (bfd_byte *) xmalloc (num_ops);
+ last_fde->eh_data = XNEWVEC (bfd_byte, num_ops);
num_ops = 0;
while (head)
{
fail:;
}
- cie = (struct cie_entry *) xmalloc (sizeof (struct cie_entry));
+ cie = XNEW (struct cie_entry);
cie->next = cie_root;
cie_root = cie;
SET_CUR_SEG (cie, CUR_SEG (fde));
if (all_fde_data == 0)
return;
+ cfi_sections_set = TRUE;
if ((all_cfi_sections & CFI_EMIT_eh_frame) != 0
|| (all_cfi_sections & CFI_EMIT_eh_frame_compact) != 0)
{
flag_traditional_format = save_flag_traditional_format;
}
+ cfi_sections_set = TRUE;
if ((all_cfi_sections & CFI_EMIT_debug_frame) != 0)
{
int alignment = ffs (DWARF2_ADDR_SIZE (stdoutput)) - 1;