diff options
55 files changed, 365 insertions, 267 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index a3e6b3e..f5684cf 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,5 +1,139 @@ 2016-05-13 Trevor Saunders <tbsaunde+binutils@tbsaunde.org> + * app.c (app_push): Use XNEW and related macros. + * as.c (parse_args): Likewise. + * cgen.c (make_right_shifted_expr): Likewise. + (gas_cgen_tc_gen_reloc): Likewise. + * config/bfin-defs.h: Likewise. + * config/bfin-parse.y: Likewise. + * config/obj-coff.c (stack_init): Likewise. + (stack_push): Likewise. + (coff_obj_symbol_new_hook): Likewise. + (coff_obj_symbol_clone_hook): Likewise. + (add_lineno): Likewise. + (coff_frob_symbol): Likewise. + * config/obj-elf.c (obj_elf_section_name): Likewise. + (build_group_lists): Likewise. + * config/obj-evax.c (evax_symbol_new_hook): Likewise. + * config/obj-macho.c (obj_mach_o_indirect_symbol): Likewise. + * config/tc-aarch64.c (insert_reg_alias): Likewise. + (find_or_make_literal_pool): Likewise. + (add_to_lit_pool): Likewise. + (fill_instruction_hash_table): Likewise. + * config/tc-alpha.c (load_expression): Likewise. + (emit_jsrjmp): Likewise. + (s_alpha_ent): Likewise. + (s_alpha_end): Likewise. + (s_alpha_linkage): Likewise. + (md_begin): Likewise. + (tc_gen_reloc): Likewise. + * config/tc-arc.c (arc_insert_opcode): Likewise. + (arc_extcorereg): Likewise. + * config/tc-bfin.c: Likewise. + * config/tc-cr16.c: Likewise. + * config/tc-cris.c: Likewise. + * config/tc-crx.c (preprocess_reglist): Likewise. + * config/tc-d10v.c: Likewise. + * config/tc-frv.c (frv_insert_vliw_insn): Likewise. + (frv_tomcat_shuffle): Likewise. + * config/tc-h8300.c: Likewise. + * config/tc-i370.c (i370_macro): Likewise. + * config/tc-i386.c (lex_got): Likewise. + (md_parse_option): Likewise. + * config/tc-ia64.c (alloc_record): Likewise. + (set_imask): Likewise. + (save_prologue_count): Likewise. + (dot_proc): Likewise. + (dot_endp): Likewise. + (ia64_frob_label): Likewise. + (add_qp_imply): Likewise. + (add_qp_mutex): Likewise. + (mark_resource): Likewise. + (dot_alias): Likewise. + * config/tc-m68hc11.c: Likewise. + * config/tc-m68k.c (m68k_frob_label): Likewise. + (s_save): Likewise. + (mri_control_label): Likewise. + (push_mri_control): Likewise. + (build_mri_control_operand): Likewise. + (s_mri_else): Likewise. + (s_mri_break): Likewise. + (s_mri_next): Likewise. + (s_mri_for): Likewise. + (s_mri_endw): Likewise. + * config/tc-metag.c (create_mnemonic_htab): Likewise. + * config/tc-microblaze.c: Likewise. + * config/tc-mmix.c (s_loc): Likewise. + * config/tc-nds32.c (nds32_relax_hint): Likewise. + * config/tc-nios2.c (nios2_insn_reloc_new): Likewise. + * config/tc-rl78.c: Likewise. + * config/tc-rx.c (rx_include): Likewise. + * config/tc-sh.c: Likewise. + * config/tc-sh64.c (shmedia_frob_section_type): Likewise. + * config/tc-sparc.c: Likewise. + * config/tc-spu.c: Likewise. + * config/tc-tic6x.c (static tic6x_unwind_info *tic6x_get_unwind): Likewise. + (tic6x_start_unwind_section): Likewise. + * config/tc-tilegx.c: Likewise. + * config/tc-tilepro.c: Likewise. + * config/tc-v850.c: Likewise. + * config/tc-visium.c: Likewise. + * config/tc-xgate.c: Likewise. + * config/tc-xtensa.c (xtensa_translate_old_userreg_ops): Likewise. + (new_resource_table): Likewise. + (resize_resource_table): Likewise. + (xtensa_create_trampoline_frag): Likewise. + (xtensa_maybe_create_literal_pool_frag): Likewise. + (cache_literal_section): Likewise. + * config/xtensa-relax.c (append_transition): Likewise. + (append_condition): Likewise. + (append_value_condition): Likewise. + (append_constant_value_condition): Likewise. + (append_literal_op): Likewise. + (append_label_op): Likewise. + (append_constant_op): Likewise. + (append_field_op): Likewise. + (append_user_fn_field_op): Likewise. + (enter_opname_n): Likewise. + (enter_opname): Likewise. + (split_string): Likewise. + (parse_insn_templ): Likewise. + (clone_req_or_option_list): Likewise. + (clone_req_option_list): Likewise. + (parse_option_cond): Likewise. + (parse_insn_pattern): Likewise. + (parse_insn_repl): Likewise. + (build_transition): Likewise. + (build_transition_table): Likewise. + * dw2gencfi.c (alloc_fde_entry): Likewise. + (alloc_cfi_insn_data): Likewise. + (cfi_add_CFA_remember_state): Likewise. + (dot_cfi_escape): Likewise. + (dot_cfi_fde_data): Likewise. + (select_cie_for_fde): Likewise. + * dwarf2dbg.c (dwarf2_directive_loc): Likewise. + * ecoff.c (ecoff_add_bytes): Likewise. + (ecoff_build_debug): Likewise. + * input-scrub.c (input_scrub_push): Likewise. + (input_scrub_begin): Likewise. + (input_scrub_next_buffer): Likewise. + * itbl-ops.c (append_insns_as_macros): Likewise. + (alloc_entry): Likewise. + (alloc_field): Likewise. + * listing.c (listing_newline): Likewise. + (listing_listing): Likewise. + * macro.c (get_any_string): Likewise. + (delete_macro): Likewise. + * stabs.c (generate_asm_file): Likewise. + (stabs_generate_asm_lineno): Likewise. + * subsegs.c (subseg_change): Likewise. + (subseg_get): Likewise. + * symbols.c (define_dollar_label): Likewise. + (symbol_relc_make_sym): Likewise. + * write.c (write_relocs): Likewise. + +2016-05-13 Trevor Saunders <tbsaunde+binutils@tbsaunde.org> + * config/obj-coff.c (obj_coff_def): Simplify string copying. (weak_name2altname): Likewise. (weak_uniquify): Likewise. @@ -259,7 +259,7 @@ app_push (void) saved->saved_input = NULL; else { - saved->saved_input = (char *) xmalloc (saved_input_len); + saved->saved_input = XNEWVEC (char, saved_input_len); memcpy (saved->saved_input, saved_input, saved_input_len); saved->saved_input_len = saved_input_len; } @@ -569,7 +569,7 @@ parse_args (int * pargc, char *** pargv) old_argv = *pargv; /* Initialize a new argv that contains no options. */ - new_argv = (char **) xmalloc (sizeof (char *) * (old_argc + 1)); + new_argv = XNEWVEC (char *, old_argc + 1); new_argv[0] = old_argv[0]; new_argc = 1; new_argv[new_argc] = NULL; @@ -726,7 +726,7 @@ This program has absolutely no warranty.\n")); as_fatal (_("bad defsym; format is --defsym name=value")); *s++ = '\0'; i = bfd_scan_vma (s, (const char **) NULL, 0); - n = (struct defsym_list *) xmalloc (sizeof *n); + n = XNEW (struct defsym_list); n->next = defsyms; n->name = optarg; n->value = i; @@ -811,7 +811,7 @@ make_right_shifted_expr (expressionS * exp, stmp->bsym->flags |= BSF_RELC; /* Then wrap that in a "symbol expr" for good measure. */ - new_exp = xmalloc (sizeof (expressionS)); + new_exp = XNEW (expressionS); memset (new_exp, 0, sizeof (expressionS)); new_exp->X_op = O_symbol; new_exp->X_op_symbol = 0; @@ -1012,7 +1012,7 @@ gas_cgen_tc_gen_reloc (asection *section ATTRIBUTE_UNUSED, fixS *fixP) bfd_reloc_code_real_type r_type = fixP->fx_r_type; arelent *reloc; - reloc = (arelent *) xmalloc (sizeof (arelent)); + reloc = XNEW (arelent); #ifdef GAS_CGEN_PCREL_R_TYPE if (fixP->fx_pcrel) @@ -1029,7 +1029,7 @@ gas_cgen_tc_gen_reloc (asection *section ATTRIBUTE_UNUSED, fixS *fixP) gas_assert (!fixP->fx_pcrel == !reloc->howto->pc_relative); - reloc->sym_ptr_ptr = (asymbol **) xmalloc (sizeof (asymbol *)); + reloc->sym_ptr_ptr = XNEW (asymbol *); *reloc->sym_ptr_ptr = symbol_get_bfdsym (fixP->fx_addsy); /* Use fx_offset for these cases. */ diff --git a/gas/config/bfin-defs.h b/gas/config/bfin-defs.h index 4c1d8b7..256587c 100644 --- a/gas/config/bfin-defs.h +++ b/gas/config/bfin-defs.h @@ -325,7 +325,6 @@ Expr_Node *Expr_Node_Create (Expr_Node_Type type, INSTR_T Expr_Node_Gen_Reloc (Expr_Node *head, int parent_reloc); #define MKREF(x) mkexpr (0,x) -#define ALLOCATE(x) malloc (x) #define NULL_CODE ((INSTR_T) 0) diff --git a/gas/config/bfin-parse.y b/gas/config/bfin-parse.y index 26070c1..a2eaa4c 100644 --- a/gas/config/bfin-parse.y +++ b/gas/config/bfin-parse.y @@ -4494,7 +4494,7 @@ expr_1: expr_1 STAR expr_1 EXPR_T mkexpr (int x, SYMBOL_T s) { - EXPR_T e = (EXPR_T) ALLOCATE (sizeof (struct expression_cell)); + EXPR_T e = XNEW (struct expression_cell); e->value = x; EXPR_SYMBOL(e) = s; return e; diff --git a/gas/config/obj-coff.c b/gas/config/obj-coff.c index 059f1cc..24f22b5 100644 --- a/gas/config/obj-coff.c +++ b/gas/config/obj-coff.c @@ -77,10 +77,8 @@ stack_init (unsigned long chunk_size, { stack *st; - st = malloc (sizeof (* st)); - if (!st) - return NULL; - st->data = malloc (chunk_size); + st = XNEW (stack); + st->data = XNEWVEC (char, chunk_size); if (!st->data) { free (st); @@ -99,8 +97,7 @@ stack_push (stack *st, char *element) if (st->pointer + st->element_size >= st->size) { st->size += st->chunk_size; - if ((st->data = xrealloc (st->data, st->size)) == NULL) - return NULL; + st->data = XRESIZEVEC (char, st->data, st->size); } memcpy (st->data + st->pointer, element, st->element_size); st->pointer += st->element_size; @@ -383,7 +380,7 @@ void coff_obj_symbol_new_hook (symbolS *symbolP) { long sz = (OBJ_COFF_MAX_AUXENTRIES + 1) * sizeof (combined_entry_type); - char * s = xmalloc (sz); + char * s = XNEWVEC (char, sz); memset (s, 0, sz); coffsymbol (symbol_get_bfdsym (symbolP))->native = (combined_entry_type *) s; @@ -403,10 +400,11 @@ coff_obj_symbol_new_hook (symbolS *symbolP) void coff_obj_symbol_clone_hook (symbolS *newsymP, symbolS *orgsymP) { - long sz = (OBJ_COFF_MAX_AUXENTRIES + 1) * sizeof (combined_entry_type); - combined_entry_type * s = xmalloc (sz); + long elts = OBJ_COFF_MAX_AUXENTRIES + 1; + combined_entry_type * s = XNEWVEC (combined_entry_type, elts); - memcpy (s, coffsymbol (symbol_get_bfdsym (orgsymP))->native, sz); + memcpy (s, coffsymbol (symbol_get_bfdsym (orgsymP))->native, + elts * sizeof (combined_entry_type)); coffsymbol (symbol_get_bfdsym (newsymP))->native = s; SF_SET (newsymP, SF_GET (orgsymP)); @@ -423,7 +421,7 @@ int coff_n_line_nos; static void add_lineno (fragS * frag, addressT offset, int num) { - struct line_no * new_line = xmalloc (sizeof (* new_line)); + struct line_no * new_line = XNEW (struct line_no); if (!current_lineno_sym) abort (); @@ -1444,7 +1442,7 @@ coff_frob_symbol (symbolS *symp, int *punt) /* We need i entries for line numbers, plus 1 for the first entry which BFD will override, plus 1 for the last zero entry (a marker for BFD). */ - l = xmalloc ((i + 2) * sizeof (* l)); + l = XNEWVEC (alent, (i + 2)); coffsymbol (symbol_get_bfdsym (symp))->lineno = l; l[i + 1].line_number = 0; l[i + 1].u.sym = NULL; diff --git a/gas/config/obj-elf.c b/gas/config/obj-elf.c index b7eb7c1..8af563f 100644 --- a/gas/config/obj-elf.c +++ b/gas/config/obj-elf.c @@ -959,7 +959,7 @@ obj_elf_section_name (void) int oldlen = strlen (name); int substlen = strlen (now_seg->name); int newlen = oldlen - 2 + substlen; - char *newname = (char *) xmalloc (newlen + 1); + char *newname = XNEWVEC (char, newlen + 1); int headlen = subst - name; memcpy (newname, name, headlen); strcpy (newname + headlen, now_seg->name); @@ -2324,10 +2324,8 @@ build_group_lists (bfd *abfd ATTRIBUTE_UNUSED, asection *sec, void *inf) if ((i & 127) == 0) { unsigned int newsize = i + 128; - list->head = (asection **) xrealloc (list->head, - newsize * sizeof (*list->head)); - list->elt_count = (unsigned int *) - xrealloc (list->elt_count, newsize * sizeof (*list->elt_count)); + list->head = XRESIZEVEC (asection *, list->head, newsize); + list->elt_count = XRESIZEVEC (unsigned int, list->elt_count, newsize); } list->head[i] = sec; list->elt_count[i] = 1; diff --git a/gas/config/obj-evax.c b/gas/config/obj-evax.c index 4458286..b6d8c31 100644 --- a/gas/config/obj-evax.c +++ b/gas/config/obj-evax.c @@ -86,8 +86,7 @@ evax_symbol_new_hook (symbolS *sym) { struct evax_private_udata_struct *udata; - udata = (struct evax_private_udata_struct *) - xmalloc (sizeof (struct evax_private_udata_struct)); + udata = XNEW (struct evax_private_udata_struct); udata->bsym = symbol_get_bfdsym (sym); udata->enbsym = NULL; diff --git a/gas/config/obj-macho.c b/gas/config/obj-macho.c index ba079f3..13d0043 100644 --- a/gas/config/obj-macho.c +++ b/gas/config/obj-macho.c @@ -1195,8 +1195,7 @@ obj_mach_o_indirect_symbol (int arg ATTRIBUTE_UNUSED) indirect, it is promoted to a 'real' one. Fetching the bfd sym achieves this. */ symbol_get_bfdsym (sym); - isym = (obj_mach_o_indirect_sym *) - xmalloc (sizeof (obj_mach_o_indirect_sym)); + isym = XNEW (obj_mach_o_indirect_sym); /* Just record the data for now, we will validate it when we compute the output in obj_mach_o_set_indirect_symbols. */ diff --git a/gas/config/tc-aarch64.c b/gas/config/tc-aarch64.c index 8213a18..415663b 100644 --- a/gas/config/tc-aarch64.c +++ b/gas/config/tc-aarch64.c @@ -1187,7 +1187,7 @@ insert_reg_alias (char *str, int number, aarch64_reg_type type) } name = xstrdup (str); - new = xmalloc (sizeof (reg_entry)); + new = XNEW (reg_entry); new->name = name; new->number = number; @@ -1575,7 +1575,7 @@ find_or_make_literal_pool (int size) if (pool == NULL) { /* Create a new pool. */ - pool = xmalloc (sizeof (*pool)); + pool = XNEW (literal_pool); if (!pool) return NULL; @@ -1652,7 +1652,8 @@ add_to_lit_pool (expressionS *exp, int size) { /* PR 16688: Bignums are held in a single global array. We must copy and preserve that value now, before it is overwritten. */ - pool->literals[entry].bignum = xmalloc (CHARS_PER_LITTLENUM * exp->X_add_number); + pool->literals[entry].bignum = XNEWVEC (LITTLENUM_TYPE, + exp->X_add_number); memcpy (pool->literals[entry].bignum, generic_bignum, CHARS_PER_LITTLENUM * exp->X_add_number); } @@ -7505,7 +7506,7 @@ fill_instruction_hash_table (void) templates *templ, *new_templ; templ = hash_find (aarch64_ops_hsh, opcode->name); - new_templ = (templates *) xmalloc (sizeof (templates)); + new_templ = XNEW (templates); new_templ->opcode = opcode; new_templ->next = NULL; diff --git a/gas/config/tc-alpha.c b/gas/config/tc-alpha.c index 638f160..c70b164 100644 --- a/gas/config/tc-alpha.c +++ b/gas/config/tc-alpha.c @@ -1384,7 +1384,7 @@ load_expression (int targreg, ptr1 = strstr (symname, "..") + 2; if (ptr1 > ptr2) ptr1 = symname; - ensymname = (char *) xmalloc (ptr2 - ptr1 + 5); + ensymname = XNEWVEC (char, ptr2 - ptr1 + 5); memcpy (ensymname, ptr1, ptr2 - ptr1); memcpy (ensymname + (ptr2 - ptr1), "..en", 5); @@ -2881,7 +2881,7 @@ emit_jsrjmp (const expressionS *tok, char *ensymname; /* Build the entry name as 'NAME..en'. */ - ensymname = (char *) xmalloc (symlen + 5); + ensymname = XNEWVEC (char, symlen + 5); memcpy (ensymname, symname, symlen); memcpy (ensymname + symlen, "..en", 5); @@ -3733,8 +3733,7 @@ s_alpha_ent (int dummy ATTRIBUTE_UNUSED) sym = symbol_find_or_make (name); symbol_get_bfdsym (sym)->flags |= BSF_FUNCTION; - cur_frame_data = (struct alpha_elf_frame_data *) - calloc (1, sizeof (*cur_frame_data)); + cur_frame_data = XCNEW (struct alpha_elf_frame_data); cur_frame_data->func_sym = sym; /* Provide sensible defaults. */ @@ -3789,7 +3788,7 @@ s_alpha_end (int dummy ATTRIBUTE_UNUSED) if (sym && cur_frame_data) { OBJ_SYMFIELD_TYPE *obj = symbol_get_obj (sym); - expressionS *exp = (expressionS *) xmalloc (sizeof (expressionS)); + expressionS *exp = XNEW (expressionS); obj->size = exp; exp->X_op = O_subtract; @@ -4712,8 +4711,7 @@ s_alpha_linkage (int ignore ATTRIBUTE_UNUSED) (FAKE_LABEL_NAME, now_seg, (valueT) frag_now_fix (), frag_now); /* Create a linkage element. */ - linkage_fixup = (struct alpha_linkage_fixups *) - xmalloc (sizeof (struct alpha_linkage_fixups)); + linkage_fixup = XNEW (struct alpha_linkage_fixups); linkage_fixup->fixp = fixp; linkage_fixup->next = NULL; linkage_fixup->label = alpha_insn_label; @@ -5439,7 +5437,7 @@ md_begin (void) if ((slash = strchr (name, '/')) != NULL) { - char *p = (char *) xmalloc (strlen (name)); + char *p = XNEWVEC (char, strlen (name)); memcpy (p, name, slash - name); strcpy (p + (slash - name), slash + 1); @@ -6220,8 +6218,8 @@ tc_gen_reloc (asection *sec ATTRIBUTE_UNUSED, { arelent *reloc; - reloc = (arelent *) xmalloc (sizeof (* reloc)); - reloc->sym_ptr_ptr = (asymbol **) xmalloc (sizeof (asymbol *)); + reloc = XNEW (arelent); + reloc->sym_ptr_ptr = XNEW (asymbol *); *reloc->sym_ptr_ptr = symbol_get_bfdsym (fixp->fx_addsy); reloc->address = fixp->fx_frag->fr_address + fixp->fx_where; @@ -6296,8 +6294,7 @@ tc_gen_reloc (asection *sec ATTRIBUTE_UNUSED, pname = symbol_get_bfdsym (sym)->name; } - udata = (struct evax_private_udata_struct *) - xmalloc (sizeof (struct evax_private_udata_struct)); + udata = XNEW (struct evax_private_udata_struct); udata->enbsym = symbol_get_bfdsym (fixp->fx_addsy); udata->bsym = symbol_get_bfdsym (fixp->tc_fix_data.info->psym); udata->origname = (char *)pname; diff --git a/gas/config/tc-arc.c b/gas/config/tc-arc.c index 67c0ec2..28f135b 100644 --- a/gas/config/tc-arc.c +++ b/gas/config/tc-arc.c @@ -700,7 +700,7 @@ arc_insert_opcode (const struct arc_opcode *opcode) entry = hash_find (arc_opcode_hash, name); if (entry == NULL) { - entry = xmalloc (sizeof (*entry)); + entry = XNEW (struct arc_opcode_hash_entry); entry->count = 0; entry->opcode = NULL; @@ -710,9 +710,8 @@ arc_insert_opcode (const struct arc_opcode *opcode) name, retval); } - entry->opcode = xrealloc (entry->opcode, - sizeof (const struct arc_opcode *) - * (entry->count + 1)); + entry->opcode = XRESIZEVEC (const struct arc_opcode *, entry->opcode, + entry->count + 1); if (entry->opcode == NULL) as_fatal (_("Virtual memory exhausted")); @@ -2937,8 +2936,8 @@ tc_gen_reloc (asection *section ATTRIBUTE_UNUSED, arelent *reloc; bfd_reloc_code_real_type code; - reloc = (arelent *) xmalloc (sizeof (* reloc)); - reloc->sym_ptr_ptr = (asymbol **) xmalloc (sizeof (asymbol *)); + reloc = XNEW (arelent); + reloc->sym_ptr_ptr = XNEW (asymbol *); *reloc->sym_ptr_ptr = symbol_get_bfdsym (fixP->fx_addsy); reloc->address = fixP->fx_frag->fr_address + fixP->fx_where; @@ -4471,7 +4470,7 @@ arc_extcorereg (int opertype) break; case EXT_AUX_REGISTER: /* Auxiliary register. */ - auxr = xmalloc (sizeof (struct arc_aux_reg)); + auxr = XNEW (struct arc_aux_reg); auxr->name = ereg.name; auxr->cpu = arc_target; auxr->subclass = NONE; @@ -4488,8 +4487,8 @@ arc_extcorereg (int opertype) ereg.number); ext_condcode.size ++; ext_condcode.arc_ext_condcode = - xrealloc (ext_condcode.arc_ext_condcode, - (ext_condcode.size + 1) * sizeof (struct arc_flag_operand)); + XRESIZEVEC (struct arc_flag_operand, ext_condcode.arc_ext_condcode, + ext_condcode.size + 1); if (ext_condcode.arc_ext_condcode == NULL) as_fatal (_("Virtual memory exhausted")); diff --git a/gas/config/tc-bfin.c b/gas/config/tc-bfin.c index 8cf2d5b..8958c7e 100644 --- a/gas/config/tc-bfin.c +++ b/gas/config/tc-bfin.c @@ -811,8 +811,8 @@ tc_gen_reloc (asection *seg ATTRIBUTE_UNUSED, fixS *fixp) { arelent *reloc; - reloc = (arelent *) xmalloc (sizeof (arelent)); - reloc->sym_ptr_ptr = (asymbol **) xmalloc (sizeof (asymbol *)); + reloc = XNEW (arelent); + reloc->sym_ptr_ptr = XNEW (asymbol *); *reloc->sym_ptr_ptr = symbol_get_bfdsym (fixp->fx_addsy); reloc->address = fixp->fx_frag->fr_address + fixp->fx_where; diff --git a/gas/config/tc-cr16.c b/gas/config/tc-cr16.c index 119f130..b7fffa7 100644 --- a/gas/config/tc-cr16.c +++ b/gas/config/tc-cr16.c @@ -528,8 +528,8 @@ tc_gen_reloc (asection *section ATTRIBUTE_UNUSED, fixS * fixP) && (S_GET_SEGMENT (fixP->fx_subsy) == absolute_section))) return NULL; - reloc = xmalloc (sizeof (arelent)); - reloc->sym_ptr_ptr = xmalloc (sizeof (asymbol *)); + reloc = XNEW (arelent); + reloc->sym_ptr_ptr = XNEW (asymbol *); *reloc->sym_ptr_ptr = symbol_get_bfdsym (fixP->fx_addsy); reloc->address = fixP->fx_frag->fr_address + fixP->fx_where; reloc->addend = fixP->fx_offset; diff --git a/gas/config/tc-cris.c b/gas/config/tc-cris.c index 536e6cb..74af4ce 100644 --- a/gas/config/tc-cris.c +++ b/gas/config/tc-cris.c @@ -3959,9 +3959,9 @@ tc_gen_reloc (asection *section ATTRIBUTE_UNUSED, fixS *fixP) return 0; } - relP = (arelent *) xmalloc (sizeof (arelent)); + relP = XNEW (arelent); gas_assert (relP != 0); - relP->sym_ptr_ptr = (asymbol **) xmalloc (sizeof (asymbol *)); + relP->sym_ptr_ptr = XNEW (asymbol *); *relP->sym_ptr_ptr = symbol_get_bfdsym (fixP->fx_addsy); relP->address = fixP->fx_frag->fr_address + fixP->fx_where; diff --git a/gas/config/tc-crx.c b/gas/config/tc-crx.c index 7993e72..4b829c2 100644 --- a/gas/config/tc-crx.c +++ b/gas/config/tc-crx.c @@ -1765,7 +1765,7 @@ preprocess_reglist (char *param, int *allocated) while (*paramP++ != '{'); - new_param = (char *)xcalloc (MAX_INST_LEN, sizeof (char)); + new_param = XCNEWVEC (char, MAX_INST_LEN); *allocated = 1; strncpy (new_param, param, paramP - param - 1); diff --git a/gas/config/tc-d10v.c b/gas/config/tc-d10v.c index e2a2caa..03b264d 100644 --- a/gas/config/tc-d10v.c +++ b/gas/config/tc-d10v.c @@ -1451,8 +1451,8 @@ arelent * tc_gen_reloc (asection *seg ATTRIBUTE_UNUSED, fixS *fixp) { arelent *reloc; - reloc = xmalloc (sizeof (arelent)); - reloc->sym_ptr_ptr = xmalloc (sizeof (asymbol *)); + reloc = XNEW (arelent); + reloc->sym_ptr_ptr = XNEW (asymbol *); *reloc->sym_ptr_ptr = symbol_get_bfdsym (fixp->fx_addsy); reloc->address = fixp->fx_frag->fr_address + fixp->fx_where; reloc->howto = bfd_reloc_type_lookup (stdoutput, fixp->fx_r_type); diff --git a/gas/config/tc-frv.c b/gas/config/tc-frv.c index 61d17a7..8912f44 100644 --- a/gas/config/tc-frv.c +++ b/gas/config/tc-frv.c @@ -524,7 +524,7 @@ frv_insert_vliw_insn (bfd_boolean count) if (current_vliw_chain == NULL) { - vliw_chain_entry = (struct vliw_chain *) xmalloc (sizeof (struct vliw_chain)); + vliw_chain_entry = XNEW (struct vliw_chain); vliw_chain_entry->insn_count = 0; vliw_chain_entry->insn_list = NULL; vliw_chain_entry->next = NULL; @@ -537,7 +537,7 @@ frv_insert_vliw_insn (bfd_boolean count) previous_vliw_chain->next = vliw_chain_entry; } - vliw_insn_list_entry = (struct vliw_insn_list *) xmalloc (sizeof (struct vliw_insn_list)); + vliw_insn_list_entry = XNEW (struct vliw_insn_list); vliw_insn_list_entry->type = VLIW_GENERIC_TYPE; vliw_insn_list_entry->insn = NULL; vliw_insn_list_entry->sym = NULL; @@ -678,9 +678,9 @@ frv_tomcat_shuffle (enum vliw_nop_type this_nop_type, struct vliw_insn_list *prev_insn = NULL; struct vliw_insn_list *curr_insn = vliw_to_split->insn_list; - struct vliw_chain *double_nop = (struct vliw_chain *) xmalloc (sizeof (struct vliw_chain)); - struct vliw_chain *single_nop = (struct vliw_chain *) xmalloc (sizeof (struct vliw_chain)); - struct vliw_chain *second_part = (struct vliw_chain *) xmalloc (sizeof (struct vliw_chain)); + struct vliw_chain *double_nop = XNEW (struct vliw_chain); + struct vliw_chain *single_nop = XNEW (struct vliw_chain); + struct vliw_chain *second_part = XNEW (struct vliw_chain); struct vliw_chain *curr_vliw = vliw_chain_top; struct vliw_chain *prev_vliw = NULL; diff --git a/gas/config/tc-h8300.c b/gas/config/tc-h8300.c index 5100f0d..048d31e 100644 --- a/gas/config/tc-h8300.c +++ b/gas/config/tc-h8300.c @@ -252,8 +252,7 @@ md_begin (void) nopcodes = sizeof (h8_opcodes) / sizeof (struct h8_opcode); - h8_instructions = (struct h8_instruction *) - xmalloc (nopcodes * sizeof (struct h8_instruction)); + h8_instructions = XNEWVEC (struct h8_instruction, nopcodes); pi = h8_instructions; p1 = h8_opcodes; @@ -273,7 +272,7 @@ md_begin (void) break; /* Strip off any . part when inserting the opcode and only enter unique codes into the hash table. */ - dst = buffer = malloc (strlen (src) + 1); + dst = buffer = XNEWVEC (char, strlen (src) + 1); while (*src) { if (*src == '.') diff --git a/gas/config/tc-i370.c b/gas/config/tc-i370.c index 7e2f146..ac8aa95 100644 --- a/gas/config/tc-i370.c +++ b/gas/config/tc-i370.c @@ -1867,7 +1867,7 @@ i370_macro (char *str, const struct i370_macro *macro) } /* Put the string together. */ - complete = s = xmalloc (len + 1); + complete = s = XNEWVEC (char, len + 1); format = macro->format; while (*format != '\0') { @@ -2603,9 +2603,9 @@ tc_gen_reloc (asection *seg ATTRIBUTE_UNUSED, fixS *fixp) { arelent *reloc; - reloc = xmalloc (sizeof (arelent)); + reloc = XNEW (arelent); - reloc->sym_ptr_ptr = xmalloc (sizeof (asymbol *)); + reloc->sym_ptr_ptr = XNEW (asymbol *); *reloc->sym_ptr_ptr = symbol_get_bfdsym (fixp->fx_addsy); reloc->address = fixp->fx_frag->fr_address + fixp->fx_where; reloc->howto = bfd_reloc_type_lookup (stdoutput, fixp->fx_r_type); diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c index 2aeaf7b..25a0fa2 100644 --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -2513,7 +2513,7 @@ md_begin (void) /* Setup for loop. */ optab = i386_optab; - core_optab = (templates *) xmalloc (sizeof (templates)); + core_optab = XNEW (templates); core_optab->start = optab; while (1) @@ -2536,7 +2536,7 @@ md_begin (void) } if (optab->name == NULL) break; - core_optab = (templates *) xmalloc (sizeof (templates)); + core_optab = XNEW (templates); core_optab->start = optab; } } @@ -7607,7 +7607,7 @@ lex_got (enum bfd_reloc_code_real *rel, /* Allocate and copy string. The trailing NUL shouldn't be necessary, but be safe. */ - tmpbuf = (char *) xmalloc (first + second + 2); + tmpbuf = XNEWVEC (char, first + second + 2); memcpy (tmpbuf, input_line_pointer, first); if (second != 0 && *past_reloc != ' ') /* Replace the relocation token with ' ', so that @@ -7715,7 +7715,7 @@ lex_got (enum bfd_reloc_code_real *rel ATTRIBUTE_UNUSED, /* Allocate and copy string. The trailing NUL shouldn't be necessary, but be safe. */ - tmpbuf = (char *) xmalloc (first + second + 2); + tmpbuf = XNEWVEC (char, first + second + 2); memcpy (tmpbuf, input_line_pointer, first); if (second != 0 && *past_reloc != ' ') /* Replace the relocation token with ' ', so that @@ -9797,7 +9797,7 @@ md_parse_option (int c, const char *arg) char *n, *t; const char *s; - n = (char *) xmalloc (strlen (i386_comment_chars) + 1); + n = XNEWVEC (char, strlen (i386_comment_chars) + 1); t = n; for (s = i386_comment_chars; *s != '\0'; s++) if (*s != '/') @@ -10603,8 +10603,8 @@ tc_gen_reloc (asection *section ATTRIBUTE_UNUSED, fixS *fixp) code = BFD_RELOC_X86_64_GOTPC64; } - rel = (arelent *) xmalloc (sizeof (arelent)); - rel->sym_ptr_ptr = (asymbol **) xmalloc (sizeof (asymbol *)); + rel = XNEW (arelent); + rel->sym_ptr_ptr = XNEW (asymbol *); *rel->sym_ptr_ptr = symbol_get_bfdsym (fixp->fx_addsy); rel->address = fixp->fx_frag->fr_address + fixp->fx_where; diff --git a/gas/config/tc-ia64.c b/gas/config/tc-ia64.c index c2194aa..c0eb593 100644 --- a/gas/config/tc-ia64.c +++ b/gas/config/tc-ia64.c @@ -1741,7 +1741,7 @@ static unw_rec_list * alloc_record (unw_record_type t) { unw_rec_list *ptr; - ptr = xmalloc (sizeof (*ptr)); + ptr = XNEW (unw_rec_list); memset (ptr, 0, sizeof (*ptr)); ptr->slot_number = SLOT_NUM_NOT_SET; ptr->r.type = t; @@ -2650,8 +2650,7 @@ set_imask (unw_rec_list *region, if (!imask) { imask_size = (region->r.record.r.rlen * 2 + 7) / 8 + 1; - imask = xmalloc (imask_size); - memset (imask, 0, imask_size); + imask = XCNEWVEC (unsigned char, imask_size); region->r.record.r.imask_size = imask_size; region->r.record.r.mask.i = imask; @@ -4110,7 +4109,7 @@ save_prologue_count (unsigned long lbl, unsigned int count) lpc->prologue_count = count; else { - label_prologue_count *new_lpc = xmalloc (sizeof (* new_lpc)); + label_prologue_count *new_lpc = XNEW (label_prologue_count); new_lpc->next = unwind.saved_prologue_counts; new_lpc->label_number = lbl; @@ -4262,7 +4261,7 @@ dot_proc (int dummy ATTRIBUTE_UNUSED) } else { - pending = xmalloc (sizeof (*pending)); + pending = XNEW (proc_pending); pending->sym = sym; last_pending = last_pending->next = pending; } @@ -4484,8 +4483,7 @@ dot_endp (int dummy ATTRIBUTE_UNUSED) S_SET_SIZE (sym, frag_now_fix () - S_GET_VALUE (sym)); else { - symbol_get_obj (sym)->size = - (expressionS *) xmalloc (sizeof (expressionS)); + symbol_get_obj (sym)->size = XNEW (expressionS); symbol_get_obj (sym)->size->X_op = O_subtract; symbol_get_obj (sym)->size->X_add_symbol = symbol_new (FAKE_LABEL_NAME, now_seg, @@ -7789,9 +7787,8 @@ ia64_frob_label (struct symbol *sym) if (md.path == md.maxpaths) { md.maxpaths += 20; - md.entry_labels = (const char **) - xrealloc ((void *) md.entry_labels, - md.maxpaths * sizeof (char *)); + md.entry_labels = XRESIZEVEC (const char *, md.entry_labels, + md.maxpaths); } md.entry_labels[md.path++] = S_GET_NAME (sym); } @@ -9732,9 +9729,7 @@ add_qp_imply (int p1, int p2) if (qp_implieslen == qp_impliestotlen) { qp_impliestotlen += 20; - qp_implies = (struct qp_imply *) - xrealloc ((void *) qp_implies, - qp_impliestotlen * sizeof (struct qp_imply)); + qp_implies = XRESIZEVEC (struct qp_imply, qp_implies, qp_impliestotlen); } if (md.debug_dv) fprintf (stderr, " Registering PR%d implies PR%d\n", p1, p2); @@ -9777,9 +9772,7 @@ add_qp_mutex (valueT mask) if (qp_mutexeslen == qp_mutexestotlen) { qp_mutexestotlen += 20; - qp_mutexes = (struct qpmutex *) - xrealloc ((void *) qp_mutexes, - qp_mutexestotlen * sizeof (struct qpmutex)); + qp_mutexes = XRESIZEVEC (struct qpmutex, qp_mutexes, qp_mutexestotlen); } if (md.debug_dv) { @@ -10193,9 +10186,7 @@ mark_resource (struct ia64_opcode *idesc ATTRIBUTE_UNUSED, if (regdepslen == regdepstotlen) { regdepstotlen += 20; - regdeps = (struct rsrc *) - xrealloc ((void *) regdeps, - regdepstotlen * sizeof (struct rsrc)); + regdeps = XRESIZEVEC (struct rsrc, regdeps, regdepstotlen); } regdeps[regdepslen] = *spec; @@ -11837,7 +11828,7 @@ dot_alias (int section) goto out; } - h = (struct alias *) xmalloc (sizeof (struct alias)); + h = XNEW (struct alias); h->file = as_where (&h->line); h->name = name; diff --git a/gas/config/tc-m68hc11.c b/gas/config/tc-m68hc11.c index c61bded..35aa491 100644 --- a/gas/config/tc-m68hc11.c +++ b/gas/config/tc-m68hc11.c @@ -613,9 +613,7 @@ md_begin (void) m68hc11_hash = hash_new (); /* Get a writable copy of the opcode table and sort it on the names. */ - opcodes = (struct m68hc11_opcode *) xmalloc (m68hc11_num_opcodes * - sizeof (struct - m68hc11_opcode)); + opcodes = XNEWVEC (struct m68hc11_opcode, m68hc11_num_opcodes); m68hc11_sorted_opcodes = opcodes; num_opcodes = 0; for (i = 0; i < m68hc11_num_opcodes; i++) @@ -644,8 +642,7 @@ md_begin (void) qsort (opcodes, num_opcodes, sizeof (struct m68hc11_opcode), (int (*) (const void*, const void*)) cmp_opcode); - opc = (struct m68hc11_opcode_def *) - xmalloc (num_opcodes * sizeof (struct m68hc11_opcode_def)); + opc = XNEWVEC (struct m68hc11_opcode_def, num_opcodes); m68hc11_opcode_defs = opc--; /* Insert unique names into hash table. The M6811 instruction set @@ -3831,8 +3828,8 @@ tc_gen_reloc (asection *section ATTRIBUTE_UNUSED, fixS *fixp) { arelent *reloc; - reloc = (arelent *) xmalloc (sizeof (arelent)); - reloc->sym_ptr_ptr = (asymbol **) xmalloc (sizeof (asymbol *)); + reloc = XNEW (arelent); + reloc->sym_ptr_ptr = XNEW (asymbol *); *reloc->sym_ptr_ptr = symbol_get_bfdsym (fixp->fx_addsy); reloc->address = fixp->fx_frag->fr_address + fixp->fx_where; if (fixp->fx_r_type == 0) diff --git a/gas/config/tc-m68k.c b/gas/config/tc-m68k.c index 50e910b..4d2c0e4 100644 --- a/gas/config/tc-m68k.c +++ b/gas/config/tc-m68k.c @@ -1334,8 +1334,8 @@ tc_gen_reloc (asection *section ATTRIBUTE_UNUSED, fixS *fixp) #undef F #undef MAP - reloc = (arelent *) xmalloc (sizeof (arelent)); - reloc->sym_ptr_ptr = (asymbol **) xmalloc (sizeof (asymbol *)); + reloc = XNEW (arelent); + reloc->sym_ptr_ptr = XNEW (asymbol *); *reloc->sym_ptr_ptr = symbol_get_bfdsym (fixp->fx_addsy); reloc->address = fixp->fx_frag->fr_address + fixp->fx_where; #ifndef OBJ_ELF @@ -4786,7 +4786,7 @@ m68k_frob_label (symbolS *sym) { struct label_line *n; - n = (struct label_line *) xmalloc (sizeof *n); + n = XNEW (struct label_line); n->next = labels; n->label = sym; n->file = as_where (&n->line); @@ -6102,7 +6102,7 @@ s_save (int ignore ATTRIBUTE_UNUSED) { struct save_opts *s; - s = (struct save_opts *) xmalloc (sizeof (struct save_opts)); + s = XNEW (struct save_opts); s->abspcadd = m68k_abspcadd; s->symbols_case_sensitive = symbols_case_sensitive; s->keep_locals = flag_keep_locals; @@ -6222,7 +6222,7 @@ mri_control_label (void) { char *n; - n = (char *) xmalloc (20); + n = XNEWVEC (char, 20); sprintf (n, "%smc%d", FAKE_LABEL_NAME, mri_control_index); ++mri_control_index; return n; @@ -6235,7 +6235,7 @@ push_mri_control (enum mri_control_type type) { struct mri_control_info *n; - n = (struct mri_control_info *) xmalloc (sizeof (struct mri_control_info)); + n = XNEW (struct mri_control_info); n->type = type; n->else_seen = 0; @@ -6514,9 +6514,9 @@ build_mri_control_operand (int qual, int cc, char *leftstart, char *leftstop, if (leftstart != NULL) { - buf = (char *) xmalloc (20 - + (leftstop - leftstart) - + (rightstop - rightstart)); + buf = XNEWVEC (char, (20 + + (leftstop - leftstart) + + (rightstop - rightstart))); s = buf; *s++ = 'c'; *s++ = 'm'; @@ -6534,7 +6534,7 @@ build_mri_control_operand (int qual, int cc, char *leftstart, char *leftstop, free (buf); } - buf = (char *) xmalloc (20 + strlen (truelab)); + buf = XNEWVEC (char, 20 + strlen (truelab)); s = buf; *s++ = 'b'; *s++ = cc >> 8; @@ -6783,7 +6783,7 @@ s_mri_else (int qual) mri_control_stack->else_seen = 1; - buf = (char *) xmalloc (20 + strlen (mri_control_stack->bottom)); + buf = XNEWVEC (char, 20 + strlen (mri_control_stack->bottom)); q[0] = TOLOWER (qual); q[1] = '\0'; sprintf (buf, "bra%s %s", q, mri_control_stack->bottom); @@ -6854,7 +6854,7 @@ s_mri_break (int extent) return; } - buf = (char *) xmalloc (20 + strlen (n->bottom)); + buf = XNEWVEC (char, 20 + strlen (n->bottom)); ex[0] = TOLOWER (extent); ex[1] = '\0'; sprintf (buf, "bra%s %s", ex, n->bottom); @@ -6892,7 +6892,7 @@ s_mri_next (int extent) return; } - buf = (char *) xmalloc (20 + strlen (n->next)); + buf = XNEWVEC (char, 20 + strlen (n->next)); ex[0] = TOLOWER (extent); ex[1] = '\0'; sprintf (buf, "bra%s %s", ex, n->next); @@ -7066,7 +7066,7 @@ s_mri_for (int qual) /* We have fully parsed the FOR operands. Now build the loop. */ n = push_mri_control (mri_for); - buf = (char *) xmalloc (50 + (input_line_pointer - varstart)); + buf = XNEWVEC (char, 50 + (input_line_pointer - varstart)); /* Move init,var. */ s = buf; @@ -7300,7 +7300,7 @@ s_mri_endw (int ignore ATTRIBUTE_UNUSED) return; } - buf = (char *) xmalloc (20 + strlen (mri_control_stack->next)); + buf = XNEWVEC (char, 20 + strlen (mri_control_stack->next)); sprintf (buf, "bra %s", mri_control_stack->next); mri_assemble (buf); free (buf); @@ -7581,7 +7581,7 @@ md_parse_option (int c, const char *arg) char *n, *t; const char *s; - n = (char *) xmalloc (strlen (m68k_comment_chars) + 1); + n = XNEWVEC (char, strlen (m68k_comment_chars) + 1); t = n; for (s = m68k_comment_chars; *s != '\0'; s++) if (*s != '|') diff --git a/gas/config/tc-metag.c b/gas/config/tc-metag.c index 10ed046..1c45924 100644 --- a/gas/config/tc-metag.c +++ b/gas/config/tc-metag.c @@ -6331,7 +6331,7 @@ create_mnemonic_htab (void) insn_templates **slot = NULL; insn_templates *new_entry; - new_entry = xmalloc (sizeof (insn_templates)); + new_entry = XNEW (insn_templates); new_entry->template = template; new_entry->next = NULL; @@ -7006,8 +7006,8 @@ tc_gen_reloc (asection *seg ATTRIBUTE_UNUSED, fixS *fixp) { arelent *reloc; - reloc = (arelent *) xmalloc (sizeof (arelent)); - reloc->sym_ptr_ptr = (asymbol **) xmalloc (sizeof (asymbol *)); + reloc = XNEW (arelent); + reloc->sym_ptr_ptr = XNEW (asymbol *); *reloc->sym_ptr_ptr = symbol_get_bfdsym (fixp->fx_addsy); reloc->address = fixp->fx_frag->fr_address + fixp->fx_where; diff --git a/gas/config/tc-microblaze.c b/gas/config/tc-microblaze.c index ceb4365..b4985f0 100644 --- a/gas/config/tc-microblaze.c +++ b/gas/config/tc-microblaze.c @@ -2432,8 +2432,8 @@ tc_gen_reloc (asection * section ATTRIBUTE_UNUSED, fixS * fixp) break; } - rel = (arelent *) xmalloc (sizeof (arelent)); - rel->sym_ptr_ptr = (asymbol **) xmalloc (sizeof (asymbol *)); + rel = XNEW (arelent); + rel->sym_ptr_ptr = XNEW (asymbol *); if (code == BFD_RELOC_MICROBLAZE_32_SYM_OP_SYM) *rel->sym_ptr_ptr = symbol_get_bfdsym (fixp->fx_subsy); diff --git a/gas/config/tc-mmix.c b/gas/config/tc-mmix.c index d3d971d..24362ad7 100644 --- a/gas/config/tc-mmix.c +++ b/gas/config/tc-mmix.c @@ -2874,9 +2874,9 @@ tc_gen_reloc (asection *section ATTRIBUTE_UNUSED, fixS *fixP) return NULL; } - relP = (arelent *) xmalloc (sizeof (arelent)); + relP = XNEW (arelent); gas_assert (relP != 0); - relP->sym_ptr_ptr = (asymbol **) xmalloc (sizeof (asymbol *)); + relP->sym_ptr_ptr = XNEW (asymbol *); *relP->sym_ptr_ptr = baddsy; relP->address = fixP->fx_frag->fr_address + fixP->fx_where; @@ -4089,8 +4089,7 @@ s_loc (int ignore ATTRIBUTE_UNUSED) if (section == undefined_section) { struct loc_assert_s *next = loc_asserts; - loc_asserts - = (struct loc_assert_s *) xmalloc (sizeof (*loc_asserts)); + loc_asserts = XNEW (struct loc_assert_s); loc_asserts->next = next; loc_asserts->old_seg = now_seg; loc_asserts->loc_sym = esym; diff --git a/gas/config/tc-nds32.c b/gas/config/tc-nds32.c index 4e65616..888e8aa 100644 --- a/gas/config/tc-nds32.c +++ b/gas/config/tc-nds32.c @@ -3709,14 +3709,14 @@ nds32_relax_hint (int mode ATTRIBUTE_UNUSED) relocs = hash_find (nds32_hint_hash, name); if (relocs == NULL) { - relocs = malloc (sizeof (struct nds32_relocs_pattern)); + relocs = XNEW (struct nds32_relocs_pattern); hash_insert (nds32_hint_hash, name, relocs); } else { while (relocs->next) relocs=relocs->next; - relocs->next = malloc (sizeof (struct nds32_relocs_pattern)); + relocs->next = XNEW (struct nds32_relocs_pattern); relocs = relocs->next; } @@ -3729,7 +3729,7 @@ nds32_relax_hint (int mode ATTRIBUTE_UNUSED) /* It has to build this list because there are maybe more than one instructions relative to the same instruction. It to connect to next instruction after md_assemble. */ - new = malloc (sizeof (struct nds32_relocs_group)); + new = XNEW (struct nds32_relocs_group); new->pattern = relocs; new->next = NULL; group = nds32_relax_hint_current; @@ -6602,9 +6602,9 @@ tc_gen_reloc (asection *section ATTRIBUTE_UNUSED, fixS *fixP) arelent *reloc; bfd_reloc_code_real_type code; - reloc = (arelent *) xmalloc (sizeof (arelent)); + reloc = XNEW (arelent); - reloc->sym_ptr_ptr = (asymbol **) xmalloc (sizeof (asymbol *)); + reloc->sym_ptr_ptr = XNEW (asymbol *); *reloc->sym_ptr_ptr = symbol_get_bfdsym (fixP->fx_addsy); reloc->address = fixP->fx_frag->fr_address + fixP->fx_where; diff --git a/gas/config/tc-nios2.c b/gas/config/tc-nios2.c index a62e3cb..6bcef1e 100644 --- a/gas/config/tc-nios2.c +++ b/gas/config/tc-nios2.c @@ -1482,7 +1482,7 @@ static nios2_insn_relocS * nios2_insn_reloc_new (bfd_reloc_code_real_type reloc_type, unsigned int pcrel) { nios2_insn_relocS *retval; - retval = (nios2_insn_relocS *) malloc (sizeof (nios2_insn_relocS)); + retval = XNEW (nios2_insn_relocS); if (retval == NULL) { as_bad (_("can't create relocation")); @@ -3854,8 +3854,8 @@ nios2_frob_symbol (symbolS *symp) arelent * tc_gen_reloc (asection *section ATTRIBUTE_UNUSED, fixS *fixp) { - arelent *reloc = (arelent *) xmalloc (sizeof (arelent)); - reloc->sym_ptr_ptr = (asymbol **) xmalloc (sizeof (asymbol *)); + arelent *reloc = XNEW (arelent); + reloc->sym_ptr_ptr = XNEW (asymbol *); *reloc->sym_ptr_ptr = symbol_get_bfdsym (fixp->fx_addsy); reloc->address = fixp->fx_frag->fr_address + fixp->fx_where; diff --git a/gas/config/tc-rl78.c b/gas/config/tc-rl78.c index a695ad6..8ab35ec 100644 --- a/gas/config/tc-rl78.c +++ b/gas/config/tc-rl78.c @@ -1271,8 +1271,8 @@ tc_gen_reloc (asection * seg ATTRIBUTE_UNUSED, fixS * fixp) fixp->fx_subsy = NULL; } - reloc[0] = (arelent *) xmalloc (sizeof (arelent)); - reloc[0]->sym_ptr_ptr = (asymbol **) xmalloc (sizeof (asymbol *)); + reloc[0] = XNEW (arelent); + reloc[0]->sym_ptr_ptr = XNEW (asymbol *); * reloc[0]->sym_ptr_ptr = symbol_get_bfdsym (fixp->fx_addsy); reloc[0]->address = fixp->fx_frag->fr_address + fixp->fx_where; reloc[0]->addend = fixp->fx_offset; @@ -1284,8 +1284,8 @@ tc_gen_reloc (asection * seg ATTRIBUTE_UNUSED, fixS * fixp) } #define OPX(REL,SYM,ADD) \ - reloc[rp] = (arelent *) xmalloc (sizeof (arelent)); \ - reloc[rp]->sym_ptr_ptr = (asymbol **) xmalloc (sizeof (asymbol *)); \ + reloc[rp] = XNEW (arelent); \ + reloc[rp]->sym_ptr_ptr = XNEW (asymbol *); \ reloc[rp]->howto = bfd_reloc_type_lookup (stdoutput, REL); \ reloc[rp]->addend = ADD; \ * reloc[rp]->sym_ptr_ptr = SYM; \ diff --git a/gas/config/tc-rx.c b/gas/config/tc-rx.c index 2c7af20..a1590ac 100644 --- a/gas/config/tc-rx.c +++ b/gas/config/tc-rx.c @@ -301,7 +301,7 @@ rx_include (int ignore) } current_filename = as_where (NULL); - f = (char *) xmalloc (strlen (current_filename) + strlen (filename) + 1); + f = XNEWVEC (char, strlen (current_filename) + strlen (filename) + 1); /* Check the filename. If [@]..FILE[@] is found then replace this with the current assembler source filename, stripped @@ -359,7 +359,7 @@ rx_include (int ignore) if (env && strlen (env) > len) len = strlen (env); - path = (char *) xmalloc (strlen (f) + len + 5); + path = XNEWVEC (char, strlen (f) + len + 5); if (current_filename != NULL) { diff --git a/gas/config/tc-sh.c b/gas/config/tc-sh.c index 3390a40..b15acf8 100644 --- a/gas/config/tc-sh.c +++ b/gas/config/tc-sh.c @@ -4424,8 +4424,8 @@ tc_gen_reloc (asection *section ATTRIBUTE_UNUSED, fixS *fixp) arelent *rel; bfd_reloc_code_real_type r_type; - rel = (arelent *) xmalloc (sizeof (arelent)); - rel->sym_ptr_ptr = (asymbol **) xmalloc (sizeof (asymbol *)); + rel = XNEW (arelent); + rel->sym_ptr_ptr = XNEW (asymbol *); *rel->sym_ptr_ptr = symbol_get_bfdsym (fixp->fx_addsy); rel->address = fixp->fx_frag->fr_address + fixp->fx_where; diff --git a/gas/config/tc-sh64.c b/gas/config/tc-sh64.c index ec08173..294f96b 100644 --- a/gas/config/tc-sh64.c +++ b/gas/config/tc-sh64.c @@ -439,7 +439,7 @@ shmedia_frob_section_type (asection *sec) sec_elf_data = sh64_elf_section_data (sec)->sh64_info; if (sec_elf_data == NULL) { - sec_elf_data = xcalloc (1, sizeof (*sec_elf_data)); + sec_elf_data = XCNEW (struct sh64_section_data); sh64_elf_section_data (sec)->sh64_info = sec_elf_data; } diff --git a/gas/config/tc-sparc.c b/gas/config/tc-sparc.c index b956131..1114afa 100644 --- a/gas/config/tc-sparc.c +++ b/gas/config/tc-sparc.c @@ -3685,10 +3685,10 @@ tc_gen_reloc (asection *section, fixS *fixp) arelent *reloc; bfd_reloc_code_real_type code; - relocs[0] = reloc = (arelent *) xmalloc (sizeof (arelent)); + relocs[0] = reloc = XNEW (arelent); relocs[1] = NULL; - reloc->sym_ptr_ptr = (asymbol **) xmalloc (sizeof (asymbol *)); + reloc->sym_ptr_ptr = XNEW (asymbol *); *reloc->sym_ptr_ptr = symbol_get_bfdsym (fixp->fx_addsy); reloc->address = fixp->fx_frag->fr_address + fixp->fx_where; @@ -3893,10 +3893,10 @@ tc_gen_reloc (asection *section, fixS *fixp) on the same location. */ if (code == BFD_RELOC_SPARC_OLO10) { - relocs[1] = reloc = (arelent *) xmalloc (sizeof (arelent)); + relocs[1] = reloc = XNEW (arelent); relocs[2] = NULL; - reloc->sym_ptr_ptr = (asymbol **) xmalloc (sizeof (asymbol *)); + reloc->sym_ptr_ptr = XNEW (asymbol *); *reloc->sym_ptr_ptr = symbol_get_bfdsym (section_symbol (absolute_section)); reloc->address = fixp->fx_frag->fr_address + fixp->fx_where; diff --git a/gas/config/tc-spu.c b/gas/config/tc-spu.c index 13e5e2d..c08dcb5 100644 --- a/gas/config/tc-spu.c +++ b/gas/config/tc-spu.c @@ -863,8 +863,8 @@ arelent * tc_gen_reloc (asection *seg ATTRIBUTE_UNUSED, fixS *fixp) { arelent *reloc; - reloc = (arelent *) xmalloc (sizeof (arelent)); - reloc->sym_ptr_ptr = (asymbol **) xmalloc (sizeof (asymbol *)); + reloc = XNEW (arelent); + reloc->sym_ptr_ptr = XNEW (asymbol *); if (fixp->fx_addsy) *reloc->sym_ptr_ptr = symbol_get_bfdsym (fixp->fx_addsy); else if (fixp->fx_subsy) diff --git a/gas/config/tc-tic6x.c b/gas/config/tc-tic6x.c index ebeafc3..a35ec2a 100644 --- a/gas/config/tc-tic6x.c +++ b/gas/config/tc-tic6x.c @@ -201,7 +201,7 @@ static tic6x_unwind_info *tic6x_get_unwind (void) if (unwind) return unwind; - unwind = (tic6x_unwind_info *)xmalloc (sizeof (tic6x_unwind_info)); + unwind =XNEW (tic6x_unwind_info); seg_info (now_seg)->tc_segment_info_data.unwind = unwind; memset (unwind, 0, sizeof (*unwind)); return unwind; @@ -4642,7 +4642,7 @@ tic6x_start_unwind_section (const segT text_seg, int idx) prefix_len = strlen (prefix); text_len = strlen (text_name); sec_name_len = prefix_len + text_len; - sec_name = (char *) xmalloc (sec_name_len + 1); + sec_name = XNEWVEC (char, sec_name_len + 1); memcpy (sec_name, prefix, prefix_len); memcpy (sec_name + prefix_len, text_name, text_len); sec_name[prefix_len + text_len] = '\0'; diff --git a/gas/config/tc-tilegx.c b/gas/config/tc-tilegx.c index bd42939..aca7f56 100644 --- a/gas/config/tc-tilegx.c +++ b/gas/config/tc-tilegx.c @@ -1735,8 +1735,8 @@ tc_gen_reloc (asection *sec ATTRIBUTE_UNUSED, fixS *fixp) { arelent *reloc; - reloc = (arelent *) xmalloc (sizeof (arelent)); - reloc->sym_ptr_ptr = (asymbol **) xmalloc (sizeof (asymbol *)); + reloc = XNEW (arelent); + reloc->sym_ptr_ptr = XNEW (asymbol *); *reloc->sym_ptr_ptr = symbol_get_bfdsym (fixp->fx_addsy); reloc->address = fixp->fx_frag->fr_address + fixp->fx_where; diff --git a/gas/config/tc-tilepro.c b/gas/config/tc-tilepro.c index a11b05f..061a41a 100644 --- a/gas/config/tc-tilepro.c +++ b/gas/config/tc-tilepro.c @@ -1515,8 +1515,8 @@ tc_gen_reloc (asection *sec ATTRIBUTE_UNUSED, fixS *fixp) { arelent *reloc; - reloc = (arelent *) xmalloc (sizeof (arelent)); - reloc->sym_ptr_ptr = (asymbol **) xmalloc (sizeof (asymbol *)); + reloc = XNEW (arelent); + reloc->sym_ptr_ptr = XNEW (asymbol *); *reloc->sym_ptr_ptr = symbol_get_bfdsym (fixp->fx_addsy); reloc->address = fixp->fx_frag->fr_address + fixp->fx_where; diff --git a/gas/config/tc-v850.c b/gas/config/tc-v850.c index 5b425a9..929c87d 100644 --- a/gas/config/tc-v850.c +++ b/gas/config/tc-v850.c @@ -3337,8 +3337,8 @@ tc_gen_reloc (asection *seg ATTRIBUTE_UNUSED, fixS *fixp) { arelent *reloc; - reloc = xmalloc (sizeof (arelent)); - reloc->sym_ptr_ptr = xmalloc (sizeof (asymbol *)); + reloc = XNEW (arelent); + reloc->sym_ptr_ptr = XNEW (asymbol *); *reloc->sym_ptr_ptr = symbol_get_bfdsym (fixp->fx_addsy); reloc->address = fixp->fx_frag->fr_address + fixp->fx_where; diff --git a/gas/config/tc-visium.c b/gas/config/tc-visium.c index c618524..7f00cbf 100644 --- a/gas/config/tc-visium.c +++ b/gas/config/tc-visium.c @@ -112,9 +112,9 @@ tc_gen_reloc (asection *section ATTRIBUTE_UNUSED, fixS *fixp) arelent *reloc; bfd_reloc_code_real_type code; - reloc = (arelent *) xmalloc (sizeof (arelent)); + reloc = XNEW (arelent); - reloc->sym_ptr_ptr = (asymbol **) xmalloc (sizeof (asymbol *)); + reloc->sym_ptr_ptr = XNEW (asymbol *); *reloc->sym_ptr_ptr = symbol_get_bfdsym (fixp->fx_addsy); reloc->address = fixp->fx_frag->fr_address + fixp->fx_where; diff --git a/gas/config/tc-xgate.c b/gas/config/tc-xgate.c index 1d68edc..769d158 100644 --- a/gas/config/tc-xgate.c +++ b/gas/config/tc-xgate.c @@ -298,8 +298,7 @@ md_begin (void) /* Create a local copy of our opcode table including an extra line for NULL termination. */ - xgate_op_table = (struct xgate_opcode *) - xmalloc ((xgate_num_opcodes) * sizeof (struct xgate_opcode)); + xgate_op_table = XNEWVEC (struct xgate_opcode, xgate_num_opcodes); memset (xgate_op_table, 0, sizeof(struct xgate_opcode) * (xgate_num_opcodes)); @@ -322,8 +321,7 @@ md_begin (void) prev_op_name = xgate_opcode_ptr->name; } - op_handles = (struct xgate_opcode_handle *) - xmalloc (sizeof(struct xgate_opcode_handle) * (number_of_op_handles)); + op_handles = XNEWVEC (struct xgate_opcode_handle, number_of_op_handles); /* Insert unique opcode names into hash table, aliasing duplicates. */ xgate_hash = hash_new (); @@ -616,8 +614,8 @@ tc_gen_reloc (asection * section ATTRIBUTE_UNUSED, fixS * fixp) { arelent * reloc; - reloc = (arelent *) xmalloc (sizeof(arelent)); - reloc->sym_ptr_ptr = (asymbol **) xmalloc (sizeof(asymbol *)); + reloc = XNEW (arelent); + reloc->sym_ptr_ptr = XNEW (asymbol *); *reloc->sym_ptr_ptr = symbol_get_bfdsym (fixp->fx_addsy); reloc->address = fixp->fx_frag->fr_address + fixp->fx_where; diff --git a/gas/config/tc-xtensa.c b/gas/config/tc-xtensa.c index 4aa421b..94411c3 100644 --- a/gas/config/tc-xtensa.c +++ b/gas/config/tc-xtensa.c @@ -2424,7 +2424,7 @@ xtensa_translate_old_userreg_ops (char **popname) /* Translate the opcode. */ sr_name = xtensa_sysreg_name (isa, sr); - new_opname = (char *) xmalloc (strlen (sr_name) + 6); + new_opname = XNEWVEC (char, strlen (sr_name) + 6); sprintf (new_opname, "%s%cur.%s", (has_underbar ? "_" : ""), opname[0], sr_name); free (*popname); @@ -6147,9 +6147,9 @@ new_resource_table (void *data, rt->opcode_unit_use = ouuf; rt->opcode_unit_stage = ousf; - rt->units = (unsigned char **) xcalloc (cycles, sizeof (unsigned char *)); + rt->units = XCNEWVEC (unsigned char *, cycles); for (i = 0; i < cycles; i++) - rt->units[i] = (unsigned char *) xcalloc (nu, sizeof (unsigned char)); + rt->units[i] = XCNEWVEC (unsigned char, nu); return rt; } @@ -6183,7 +6183,7 @@ resize_resource_table (resource_table *rt, int cycles) for (i = 0; i < old_cycles; i++) rt->units[i] = XRESIZEVEC (unsigned char, rt->units[i], rt->num_units); for (i = old_cycles; i < cycles; i++) - rt->units[i] = xcalloc (rt->num_units, sizeof (unsigned char)); + rt->units[i] = XCNEWVEC (unsigned char, rt->num_units); } @@ -7434,7 +7434,7 @@ xtensa_create_trampoline_frag (bfd_boolean needs_jump_around) if (ts == NULL) { - ts = (struct trampoline_seg *)xcalloc(sizeof (struct trampoline_seg), 1); + ts = XCNEW(struct trampoline_seg); ts->next = trampoline_seg_list.next; trampoline_seg_list.next = ts; ts->seg = now_seg; @@ -7549,7 +7549,7 @@ xtensa_maybe_create_literal_pool_frag (bfd_boolean create, if (lps == NULL) { - lps = (struct litpool_seg *)xcalloc (sizeof (struct litpool_seg), 1); + lps = XCNEW (struct litpool_seg); lps->next = litpool_seg_list.next; litpool_seg_list.next = lps; lps->seg = now_seg; @@ -11564,7 +11564,7 @@ cache_literal_section (bfd_boolean use_abs_literals) || strncmp (text_name, ".text", 5) == 0)) len -= 5; - name = xmalloc (len + strlen (base_name) + 1); + name = XNEWVEC (char, len + strlen (base_name) + 1); if (strncmp (text_name, ".text", 5) == 0) { strcpy (name, base_name); diff --git a/gas/config/xtensa-relax.c b/gas/config/xtensa-relax.c index 9b4994a..ffec5ed 100644 --- a/gas/config/xtensa-relax.c +++ b/gas/config/xtensa-relax.c @@ -522,7 +522,7 @@ append_transition (TransitionTable *tt, TransitionRule *t, transition_cmp_fn cmp) { - TransitionList *tl = (TransitionList *) xmalloc (sizeof (TransitionList)); + TransitionList *tl = XNEW (TransitionList); TransitionList *prev; TransitionList **t_p; gas_assert (tt != NULL); @@ -554,8 +554,7 @@ append_transition (TransitionTable *tt, static void append_condition (TransitionRule *tr, Precondition *cond) { - PreconditionList *pl = - (PreconditionList *) xmalloc (sizeof (PreconditionList)); + PreconditionList *pl = XNEW (PreconditionList); PreconditionList *prev = tr->conditions; PreconditionList *nxt; @@ -582,7 +581,7 @@ append_value_condition (TransitionRule *tr, unsigned op1, unsigned op2) { - Precondition *cond = (Precondition *) xmalloc (sizeof (Precondition)); + Precondition *cond = XNEW (Precondition); cond->cmp = cmp; cond->op_num = op1; @@ -598,7 +597,7 @@ append_constant_value_condition (TransitionRule *tr, unsigned op1, unsigned cnst) { - Precondition *cond = (Precondition *) xmalloc (sizeof (Precondition)); + Precondition *cond = XNEW (Precondition); cond->cmp = cmp; cond->op_num = op1; @@ -654,7 +653,7 @@ append_op (BuildInstr *bi, BuildOp *b_op) static void append_literal_op (BuildInstr *bi, unsigned op1, unsigned src_op) { - BuildOp *b_op = (BuildOp *) xmalloc (sizeof (BuildOp)); + BuildOp *b_op = XNEW (BuildOp); b_op->op_num = op1; b_op->typ = OP_LITERAL; @@ -667,7 +666,7 @@ append_literal_op (BuildInstr *bi, unsigned op1, unsigned src_op) static void append_label_op (BuildInstr *bi, unsigned op1) { - BuildOp *b_op = (BuildOp *) xmalloc (sizeof (BuildOp)); + BuildOp *b_op = XNEW (BuildOp); b_op->op_num = op1; b_op->typ = OP_LABEL; @@ -680,7 +679,7 @@ append_label_op (BuildInstr *bi, unsigned op1) static void append_constant_op (BuildInstr *bi, unsigned op1, unsigned cnst) { - BuildOp *b_op = (BuildOp *) xmalloc (sizeof (BuildOp)); + BuildOp *b_op = XNEW (BuildOp); b_op->op_num = op1; b_op->typ = OP_CONSTANT; @@ -693,7 +692,7 @@ append_constant_op (BuildInstr *bi, unsigned op1, unsigned cnst) static void append_field_op (BuildInstr *bi, unsigned op1, unsigned src_op) { - BuildOp *b_op = (BuildOp *) xmalloc (sizeof (BuildOp)); + BuildOp *b_op = XNEW (BuildOp); b_op->op_num = op1; b_op->typ = OP_OPERAND; @@ -711,7 +710,7 @@ append_user_fn_field_op (BuildInstr *bi, OpType typ, unsigned src_op) { - BuildOp *b_op = (BuildOp *) xmalloc (sizeof (BuildOp)); + BuildOp *b_op = XNEW (BuildOp); b_op->op_num = op1; b_op->typ = typ; @@ -819,7 +818,7 @@ enter_opname_n (const char *name, int len) && strncmp (op->opname, name, len) == 0) return op->opname; } - op = (opname_e *) xmalloc (sizeof (opname_e)); + op = XNEW (opname_e); op->opname = xmemdup0 (name, len); return op->opname; } @@ -835,7 +834,7 @@ enter_opname (const char *name) if (strcmp (op->opname, name) == 0) return op->opname; } - op = (opname_e *) xmalloc (sizeof (opname_e)); + op = XNEW (opname_e); op->opname = xstrdup (name); return op->opname; } @@ -1105,7 +1104,7 @@ split_string (split_rec *rec, if (rec->count == 0) return; - rec->vec = (char **) xmalloc (sizeof (char *) * cnt); + rec->vec = XNEWVEC (char *, cnt); for (i = 0; i < cnt; i++) rec->vec[i] = 0; @@ -1189,7 +1188,7 @@ parse_insn_templ (const char *s, insn_templ *t) for (i = 0; i < oprec.count; i++) { const char *opname = oprec.vec[i]; - opname_map_e *e = (opname_map_e *) xmalloc (sizeof (opname_map_e)); + opname_map_e *e = XNEW (opname_map_e); e->next = NULL; e->operand_name = NULL; e->constant_value = 0; @@ -1307,7 +1306,7 @@ clone_req_or_option_list (ReqOrOption *req_or_option) if (req_or_option == NULL) return NULL; - new_req_or_option = (ReqOrOption *) xmalloc (sizeof (ReqOrOption)); + new_req_or_option = XNEW (ReqOrOption); new_req_or_option->option_name = xstrdup (req_or_option->option_name); new_req_or_option->is_true = req_or_option->is_true; new_req_or_option->next = NULL; @@ -1324,7 +1323,7 @@ clone_req_option_list (ReqOption *req_option) if (req_option == NULL) return NULL; - new_req_option = (ReqOption *) xmalloc (sizeof (ReqOption)); + new_req_option = XNEW (ReqOption); new_req_option->or_option_terms = NULL; new_req_option->next = NULL; new_req_option->or_option_terms = @@ -1368,7 +1367,7 @@ parse_option_cond (const char *s, ReqOption *option) else option_name = xstrdup (option_name); - req = (ReqOrOption *) xmalloc (sizeof (ReqOrOption)); + req = XNEW (ReqOrOption); req->option_name = option_name; req->is_true = is_true; req->next = NULL; @@ -1436,7 +1435,7 @@ parse_insn_pattern (const char *in, insn_pattern *insn) for (i = 1; i < rec.count; i++) { - precond_e *cond = (precond_e *) xmalloc (sizeof (precond_e)); + precond_e *cond = XNEW (precond_e); if (!parse_precond (rec.vec[i], cond)) { @@ -1455,7 +1454,7 @@ parse_insn_pattern (const char *in, insn_pattern *insn) { /* Handle the option conditions. */ ReqOption **r_p; - ReqOption *req_option = (ReqOption *) xmalloc (sizeof (ReqOption)); + ReqOption *req_option = XNEW (ReqOption); req_option->or_option_terms = NULL; req_option->next = NULL; @@ -1492,7 +1491,7 @@ parse_insn_repl (const char *in, insn_repl *r_p) for (i = 0; i < rec.count; i++) { - insn_repl_e *e = (insn_repl_e *) xmalloc (sizeof (insn_repl_e)); + insn_repl_e *e = XNEW (insn_repl_e); e->next = NULL; @@ -1628,7 +1627,7 @@ build_transition (insn_pattern *initial_insn, return NULL; } - tr = (TransitionRule *) xmalloc (sizeof (TransitionRule)); + tr = XNEW (TransitionRule); tr->opcode = opcode; tr->conditions = NULL; tr->to_instr = NULL; @@ -1723,7 +1722,7 @@ build_transition (insn_pattern *initial_insn, const char *fn_name; const char *operand_arg_name; - bi = (BuildInstr *) xmalloc (sizeof (BuildInstr)); + bi = XNEW (BuildInstr); append_build_insn (tr, bi); bi->opcode = XTENSA_UNDEFINED; @@ -1853,10 +1852,9 @@ build_transition_table (const string_pattern_pair *transitions, return table; /* Otherwise, build it now. */ - table = (TransitionTable *) xmalloc (sizeof (TransitionTable)); + table = XNEW (TransitionTable); table->num_opcodes = num_opcodes; - table->table = - (TransitionList **) xmalloc (sizeof (TransitionTable *) * num_opcodes); + table->table = XNEWVEC (TransitionList *, num_opcodes); for (i = 0; i < num_opcodes; i++) table->table[i] = NULL; diff --git a/gas/dw2gencfi.c b/gas/dw2gencfi.c index c66402d..fb3e302 100644 --- a/gas/dw2gencfi.c +++ b/gas/dw2gencfi.c @@ -434,11 +434,9 @@ struct frch_cfi_data 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; @@ -467,8 +465,7 @@ static struct fde_entry *last_fde; 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; @@ -662,7 +659,7 @@ cfi_add_CFA_remember_state (void) 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; @@ -947,7 +944,7 @@ dot_cfi_escape (int ignored ATTRIBUTE_UNUSED) 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; @@ -1387,7 +1384,7 @@ dot_cfi_fde_data (int ignored ATTRIBUTE_UNUSED) 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; @@ -1409,7 +1406,7 @@ dot_cfi_fde_data (int ignored ATTRIBUTE_UNUSED) 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) { @@ -2093,7 +2090,7 @@ select_cie_for_fde (struct fde_entry *fde, bfd_boolean eh_frame, 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)); diff --git a/gas/dwarf2dbg.c b/gas/dwarf2dbg.c index f0c46e2..61268a8 100644 --- a/gas/dwarf2dbg.c +++ b/gas/dwarf2dbg.c @@ -639,7 +639,7 @@ dwarf2_directive_loc (int dummy ATTRIBUTE_UNUSED) { size_t dir_len = strlen (dirs[files[filenum].dir]); size_t file_len = strlen (files[filenum].filename); - char *cp = (char *) xmalloc (dir_len + 1 + file_len + 1); + char *cp = XNEWVEC (char, dir_len + 1 + file_len + 1); memcpy (cp, dirs[files[filenum].dir], dir_len); INSERT_DIR_SEPARATOR (cp, dir_len); diff --git a/gas/ecoff.c b/gas/ecoff.c index e7d7ab6..a5fc62c 100644 --- a/gas/ecoff.c +++ b/gas/ecoff.c @@ -3610,7 +3610,7 @@ ecoff_add_bytes (char **buf, if (need < PAGE_SIZE) need = PAGE_SIZE; want = (*bufend - *buf) + need; - *buf = (char *) xrealloc (*buf, want); + *buf = XRESIZEVEC (char, *buf, want); *bufend = *buf + want; return *buf + at; } @@ -4691,7 +4691,7 @@ ecoff_build_debug (HDRR *hdr, /* Build the symbolic information. */ offset = 0; - buf = (char *) xmalloc (PAGE_SIZE); + buf = XNEWVEC (char, PAGE_SIZE); bufend = buf + PAGE_SIZE; /* Build the line number information. */ diff --git a/gas/input-scrub.c b/gas/input-scrub.c index 4bbb38f..1de5e03 100644 --- a/gas/input-scrub.c +++ b/gas/input-scrub.c @@ -139,7 +139,7 @@ input_scrub_push (char *saved_position) { struct input_save *saved; - saved = (struct input_save *) xmalloc (sizeof *saved); + saved = XNEW (struct input_save); saved->saved_position = saved_position; saved->buffer_start = buffer_start; @@ -163,8 +163,8 @@ input_scrub_push (char *saved_position) buffer_length = input_file_buffer_size (); sb_index = -1; - buffer_start = (char *) xmalloc ((BEFORE_SIZE + buffer_length - + buffer_length + AFTER_SIZE + 1)); + buffer_start = XNEWVEC (char, (BEFORE_SIZE + buffer_length + + buffer_length + AFTER_SIZE + 1)); memcpy (buffer_start, BEFORE_STRING, (int) BEFORE_SIZE); return saved; @@ -208,8 +208,8 @@ input_scrub_begin (void) buffer_length = input_file_buffer_size (); - buffer_start = (char *) xmalloc ((BEFORE_SIZE + buffer_length - + buffer_length + AFTER_SIZE + 1)); + buffer_start = XNEWVEC (char, (BEFORE_SIZE + buffer_length + + buffer_length + AFTER_SIZE + 1)); memcpy (buffer_start, BEFORE_STRING, (int) BEFORE_SIZE); /* Line number things. */ @@ -389,10 +389,10 @@ input_scrub_next_buffer (char **bufp) partial_size = limit - (buffer_start + BEFORE_SIZE); buffer_length += input_file_buffer_size (); - buffer_start = (char *) xrealloc (buffer_start, - (BEFORE_SIZE - + 2 * buffer_length - + AFTER_SIZE + 1)); + buffer_start = XRESIZEVEC (char, buffer_start, + (BEFORE_SIZE + + 2 * buffer_length + + AFTER_SIZE + 1)); } /* Tell the listing we've finished the file. */ diff --git a/gas/itbl-ops.c b/gas/itbl-ops.c index 1a4e2bb..488e3be 100644 --- a/gas/itbl-ops.c +++ b/gas/itbl-ops.c @@ -299,7 +299,7 @@ append_insns_as_macros (void) { struct ITBL_OPCODE_STRUCT *new_opcodes, *o; struct itbl_entry *e, **es; - int n, size, new_size, new_num_opcodes; + int n, size, new_num_opcodes; #ifdef USE_MACROS int id; #endif @@ -320,12 +320,9 @@ append_insns_as_macros (void) ASSERT (size >= 0); DBG (("I get=%d\n", size / sizeof (ITBL_OPCODES[0]))); - new_size = sizeof (struct ITBL_OPCODE_STRUCT) * new_num_opcodes; - ASSERT (new_size > size); - /* FIXME since ITBL_OPCODES culd be a static table, we can't realloc or delete the old memory. */ - new_opcodes = (struct ITBL_OPCODE_STRUCT *) malloc (new_size); + new_opcodes = XNEWVEC (struct ITBL_OPCODE_STRUCT, new_num_opcodes); if (!new_opcodes) { printf (_("Unable to allocate memory for new instructions\n")); @@ -853,7 +850,7 @@ alloc_entry (e_processor processor, e_type type, struct itbl_entry *e, **es; if (!name) return 0; - e = (struct itbl_entry *) malloc (sizeof (struct itbl_entry)); + e = XNEW (struct itbl_entry); if (e) { memset (e, 0, sizeof (struct itbl_entry)); @@ -875,7 +872,7 @@ alloc_field (e_type type, int sbit, int ebit, unsigned long flags) { struct itbl_field *f; - f = (struct itbl_field *) malloc (sizeof (struct itbl_field)); + f = XNEW (struct itbl_field); if (f) { memset (f, 0, sizeof (struct itbl_field)); diff --git a/gas/listing.c b/gas/listing.c index e5fb3a0..c6ec7f3 100644 --- a/gas/listing.c +++ b/gas/listing.c @@ -347,7 +347,7 @@ listing_newline (char *ps) if (strcmp (file, _("{standard input}")) == 0 && input_line_pointer != NULL) { - char *copy; + char *copy, *src, *dest; int len; int seen_quote = 0; int seen_slash = 0; @@ -367,25 +367,22 @@ listing_newline (char *ps) len = copy - input_line_pointer + 1; - copy = (char *) xmalloc (len); + copy = XNEWVEC (char, len); - if (copy != NULL) - { - char *src = input_line_pointer; - char *dest = copy; - - while (--len) - { - unsigned char c = *src++; + src = input_line_pointer; + dest = copy; - /* Omit control characters in the listing. */ - if (!ISCNTRL (c)) - *dest++ = c; - } + while (--len) + { + unsigned char c = *src++; - *dest = 0; + /* Omit control characters in the listing. */ + if (!ISCNTRL (c)) + *dest++ = c; } + *dest = 0; + new_i->line_contents = copy; } else @@ -1200,8 +1197,8 @@ listing_listing (char *name ATTRIBUTE_UNUSED) int show_listing = 1; unsigned int width; - buffer = (char *) xmalloc (listing_rhs_width); - data_buffer = (char *) xmalloc (MAX_BYTES); + buffer = XNEWVEC (char, listing_rhs_width); + data_buffer = XNEWVEC (char, MAX_BYTES); eject = 1; list = head->next; diff --git a/gas/macro.c b/gas/macro.c index 6bfce31..0d1a1d2 100644 --- a/gas/macro.c +++ b/gas/macro.c @@ -404,7 +404,7 @@ get_any_string (size_t idx, sb *in, sb *out) } else { - char *br_buf = (char *) xmalloc (1); + char *br_buf = XNEWVEC (char, 1); char *in_br = br_buf; *in_br = '\0'; @@ -438,7 +438,7 @@ get_any_string (size_t idx, sb *in, sb *out) --in_br; else { - br_buf = (char *) xmalloc (strlen (in_br) + 2); + br_buf = XNEWVEC (char, strlen (in_br) + 2); strcpy (br_buf + 1, in_br); free (in_br); in_br = br_buf; @@ -1287,7 +1287,7 @@ delete_macro (const char *name) macro_entry *macro; len = strlen (name); - copy = (char *) xmalloc (len + 1); + copy = XNEWVEC (char, len + 1); for (i = 0; i < len; ++i) copy[i] = TOLOWER (name[i]); copy[i] = '\0'; diff --git a/gas/stabs.c b/gas/stabs.c index 10e271f..916594c 100644 --- a/gas/stabs.c +++ b/gas/stabs.c @@ -533,7 +533,7 @@ generate_asm_file (int type, const char *file) /* Allocate enough space for the file name (possibly extended with doubled up backslashes), the symbol name, and the other characters that make up a stabs file directive. */ - bufp = buf = (char *) xmalloc (2 * strlen (file) + strlen (sym) + 12); + bufp = buf = XNEWVEC (char, 2 * strlen (file) + strlen (sym) + 12); *bufp++ = '"'; @@ -629,13 +629,13 @@ stabs_generate_asm_lineno (void) if (in_dot_func_p) { - buf = (char *) xmalloc (100 + strlen (current_function_label)); + buf = XNEWVEC (char, 100 + strlen (current_function_label)); sprintf (buf, "%d,0,%d,%s-%s\n", N_SLINE, lineno, sym, current_function_label); } else { - buf = (char *) xmalloc (100); + buf = XNEWVEC (char, 100); sprintf (buf, "%d,0,%d,%s\n", N_SLINE, lineno, sym); } input_line_pointer = buf; diff --git a/gas/subsegs.c b/gas/subsegs.c index e9c575c..0647653 100644 --- a/gas/subsegs.c +++ b/gas/subsegs.c @@ -63,7 +63,7 @@ subseg_change (segT seg, int subseg) if (! seginfo) { - seginfo = (segment_info_type *) xcalloc (1, sizeof (*seginfo)); + seginfo = XCNEW (segment_info_type); seginfo->bfd_section = seg; bfd_set_section_userdata (stdoutput, seg, seginfo); } @@ -165,7 +165,7 @@ subseg_get (const char *segname, int force_new) if (! seginfo) { secptr->output_section = secptr; - seginfo = (segment_info_type *) xcalloc (1, sizeof (*seginfo)); + seginfo = XCNEW (segment_info_type); seginfo->bfd_section = secptr; bfd_set_section_userdata (stdoutput, secptr, seginfo); } diff --git a/gas/symbols.c b/gas/symbols.c index 0d5a854..082b2c7 100644 --- a/gas/symbols.c +++ b/gas/symbols.c @@ -1639,7 +1639,7 @@ define_dollar_label (long label) { dollar_labels = XNEWVEC (long, DOLLAR_LABEL_BUMP_BY); dollar_label_instances = XNEWVEC (long, DOLLAR_LABEL_BUMP_BY); - dollar_label_defines = (char *) xmalloc (DOLLAR_LABEL_BUMP_BY); + dollar_label_defines = XNEWVEC (char, DOLLAR_LABEL_BUMP_BY); dollar_label_max = DOLLAR_LABEL_BUMP_BY; dollar_label_count = 0; } @@ -1649,7 +1649,8 @@ define_dollar_label (long label) dollar_labels = XRESIZEVEC (long, dollar_labels, dollar_label_max); dollar_label_instances = XRESIZEVEC (long, dollar_label_instances, dollar_label_max); - dollar_label_defines = (char *) xrealloc (dollar_label_defines, dollar_label_max); + dollar_label_defines = XRESIZEVEC (char, dollar_label_defines, + dollar_label_max); } /* if we needed to grow */ dollar_labels[dollar_label_count] = label; @@ -3075,11 +3076,11 @@ symbol_relc_make_sym (symbolS * sym) sname_len = strlen (sname); typetag = symbol_section_p (sym) ? 'S' : 's'; - terminal = xmalloc (1 /* S or s */ - + 8 /* sname_len in decimal */ - + 1 /* _ spacer */ - + sname_len /* name itself */ - + 1 /* \0 */ ); + terminal = XNEWVEC (char, (1 /* S or s */ + + 8 /* sname_len in decimal */ + + 1 /* _ spacer */ + + sname_len /* name itself */ + + 1 /* \0 */ )); sprintf (terminal, "%c%d:%s", typetag, sname_len, sname); return terminal; diff --git a/gas/write.c b/gas/write.c index c965e68..0dfca0c 100644 --- a/gas/write.c +++ b/gas/write.c @@ -1234,7 +1234,7 @@ write_relocs (bfd *abfd, asection *sec, void *xxx ATTRIBUTE_UNUSED) rp = &r->next; } - relocs = (arelent **) xcalloc (n, sizeof (arelent *)); + relocs = XCNEWVEC (arelent *, n); n = 0; r = my_reloc_list; |