X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gas%2Fconfig%2Ftc-score.c;h=f96879b3ab1beae1a5a25f4950cde03f9fa8ff00;hb=0c608d6b62f9164203685ab125b4b3ad113eb26e;hp=dd2703f2ddd6ad7e986214f95a3d27f00fee34a1;hpb=b90efa5b79ac1524ec260f8eb89d1be37e0219a7;p=deliverable%2Fbinutils-gdb.git diff --git a/gas/config/tc-score.c b/gas/config/tc-score.c index dd2703f2dd..f96879b3ab 100644 --- a/gas/config/tc-score.c +++ b/gas/config/tc-score.c @@ -1,5 +1,5 @@ /* tc-score.c -- Assembler for Score - Copyright (C) 2006-2015 Free Software Foundation, Inc. + Copyright (C) 2006-2016 Free Software Foundation, Inc. Contributed by: Brain.lin (brain.lin@sunplusct.com) Mei Ligang (ligang@sunnorth.com.cn) @@ -61,7 +61,7 @@ static void s3_assemble (char *str); static void s3_operand (expressionS *); static void s3_begin (void); static void s3_number_to_chars (char *buf, valueT val, int n); -static char *s3_atof (int type, char *litP, int *sizeP); +static const char *s3_atof (int type, char *litP, int *sizeP); static void s3_frag_check (fragS * fragp ATTRIBUTE_UNUSED); static void s3_validate_fix (fixS *fixP); static int s3_force_relocation (struct fix *fixp); @@ -334,7 +334,7 @@ enum s3_insn_type_for_dependency struct s3_insn_to_dependency { - char *insn_name; + const char *insn_name; enum s3_insn_type_for_dependency type; }; @@ -5619,10 +5619,9 @@ s3_get_symbol (void) char *name; symbolS *p; - name = input_line_pointer; - c = get_symbol_end (); + c = get_symbol_name (&name); p = (symbolS *) symbol_find_or_make (name); - *input_line_pointer = c; + (void) restore_line_pointer (c); return p; } @@ -6095,10 +6094,9 @@ s3_s_score_lcomm (int bytes_p) segT bss_seg = bss_section; int needs_align = 0; - name = input_line_pointer; - c = get_symbol_end (); + c = get_symbol_name (&name); p = input_line_pointer; - *p = c; + (void) restore_line_pointer (c); if (name == p) { @@ -6275,8 +6273,8 @@ s3_insert_reg (const struct s3_reg_entry *r, struct hash_control *htab) { int i = 0; int len = strlen (r->name) + 2; - char *buf = xmalloc (len); - char *buf2 = xmalloc (len); + char *buf = XNEWVEC (char, len); + char *buf2 = XNEWVEC (char, len); strcpy (buf + i, r->name); for (i = 0; buf[i]; i++) @@ -6346,14 +6344,15 @@ s3_build_dependency_insn_hsh (void) const struct s3_insn_to_dependency *tmp = s3_insn_to_dependency_table + i; size_t len = strlen (tmp->insn_name); struct s3_insn_to_dependency *new_i2n; + char *buf; new_i2n = (struct s3_insn_to_dependency *) obstack_alloc (&dependency_obstack, sizeof (struct s3_insn_to_dependency)); - new_i2n->insn_name = (char *) obstack_alloc (&dependency_obstack, - len + 1); + buf = (char *) obstack_alloc (&dependency_obstack, len + 1); - strcpy (new_i2n->insn_name, tmp->insn_name); + strcpy (buf, tmp->insn_name); + new_i2n->insn_name = buf; new_i2n->type = tmp->type; hash_insert (s3_dependency_insn_hsh, new_i2n->insn_name, (void *) new_i2n); @@ -6658,7 +6657,7 @@ s3_md_chars_to_number (char *buf, int n) return result; } -static char * +static const char * s3_atof (int type, char *litP, int *sizeP) { int prec; @@ -7091,7 +7090,7 @@ static valueT s3_section_align (segT segment ATTRIBUTE_UNUSED, valueT size) { int align = bfd_get_section_alignment (stdoutput, segment); - return ((size + (1 << align) - 1) & (-1 << align)); + return ((size + (1 << align) - 1) & -(1 << align)); } static void @@ -7399,12 +7398,12 @@ s3_gen_reloc (asection * section ATTRIBUTE_UNUSED, fixS * fixp) static arelent *retval[MAX_RELOC_EXPANSION + 1]; /* MAX_RELOC_EXPANSION equals 2. */ arelent *reloc; bfd_reloc_code_real_type code; - char *type; + const char *type; - reloc = retval[0] = xmalloc (sizeof (arelent)); + reloc = retval[0] = XNEW (arelent); retval[1] = NULL; - 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->addend = fixp->fx_offset; @@ -7432,9 +7431,9 @@ s3_gen_reloc (asection * section ATTRIBUTE_UNUSED, fixS * fixp) newval |= (((off >> 14) & 0x3) << 16); s3_md_number_to_chars (buf, newval, s3_INSN_SIZE); - retval[1] = xmalloc (sizeof (arelent)); + retval[1] = XNEW (arelent); retval[2] = NULL; - retval[1]->sym_ptr_ptr = xmalloc (sizeof (asymbol *)); + retval[1]->sym_ptr_ptr = XNEW (asymbol *); *retval[1]->sym_ptr_ptr = symbol_get_bfdsym (fixp->fx_addsy); retval[1]->address = (reloc->address + s3_RELAX_RELOC2 (fixp->fx_frag->fr_subtype)); @@ -7543,7 +7542,7 @@ md_number_to_chars (char *buf, valueT val, int n) within the words. For example, (double) 1.1 in big endian mode is the byte sequence 3f f1 99 99 99 99 99 9a, and in little endian mode is the byte sequence 99 99 f1 3f 9a 99 99 99. */ -char * +const char * md_atof (int type, char *litP, int *sizeP) { if (score3) @@ -7717,7 +7716,7 @@ score_set_mach (const char *arg) } int -md_parse_option (int c, char *arg) +md_parse_option (int c, const char *arg) { switch (c) {