X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gas%2Fconfig%2Fobj-evax.c;h=b6d8c314cac3be3062cdb7f5b7ec33923a45b8e5;hb=feb4bea70a297eb6316d1b0685bbbb8095b7fb29;hp=2fda63d7f1077987b726b6bd403e403a72d65bfd;hpb=222661cb8e42e818f873bf4a4ec524274314919b;p=deliverable%2Fbinutils-gdb.git diff --git a/gas/config/obj-evax.c b/gas/config/obj-evax.c index 2fda63d7f1..b6d8c314ca 100644 --- a/gas/config/obj-evax.c +++ b/gas/config/obj-evax.c @@ -1,6 +1,5 @@ /* obj-evax.c - EVAX (openVMS/Alpha) object file format. - Copyright 1996, 1997, 2005, 2007, 2008, 2009, 2010, 2011, 2012 - Free Software Foundation, Inc. + Copyright (C) 1996-2016 Free Software Foundation, Inc. Contributed by Klaus Kämpf (kkaempf@progis.de) of proGIS Software, Aachen, Germany. Extensively enhanced by Douglas Rupp of AdaCore. @@ -61,10 +60,9 @@ s_evax_weak (int ignore ATTRIBUTE_UNUSED) do { - name = input_line_pointer; - c = get_symbol_end (); + c = get_symbol_name (&name); symbolP = symbol_find_or_make (name); - *input_line_pointer = c; + (void) restore_line_pointer (c); SKIP_WHITESPACE (); S_SET_WEAK (symbolP); if (c == ',') @@ -88,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; @@ -275,9 +272,7 @@ evax_shorten_name (char *id) } /* We only need worry about krunching the base symbol. */ - base_id = xmalloc (suffix_dotdot - prefix_dotdot + 1); - strncpy (base_id, &id[prefix_dotdot], suffix_dotdot - prefix_dotdot); - base_id [suffix_dotdot - prefix_dotdot] = 0; + base_id = xmemdup0 (&id[prefix_dotdot], suffix_dotdot - prefix_dotdot); if (strlen (base_id) > MAX_LABEL_LENGTH) { @@ -301,8 +296,7 @@ evax_shorten_name (char *id) strcat (new_id, suffix); /* Save it on the heap and return. */ - return_id = xmalloc (strlen (new_id) + 1); - strcpy (return_id, new_id); + return_id = xstrdup (new_id); return return_id; } @@ -333,7 +327,7 @@ evax_shorten_name (char *id) which further designates that the name was truncated): "original_identifier"_haaaaabbbccc - + aaaaa = 32-bit CRC bbb = length of original identifier ccc = sum of 32-bit CRC characters @@ -362,7 +356,7 @@ static char decodings[256]; /* Table used by the crc32 function to calcuate the checksum. */ static unsigned int crc32_table[256] = {0, 0}; -/* Given a string in BUF, calculate a 32-bit CRC for it. +/* Given a string in BUF, calculate a 32-bit CRC for it. This is used as a reasonably unique hash for the given string. */ @@ -500,7 +494,7 @@ is_truncated_identifier (char *id) a truncated identifier. */ if (len != MAX_LABEL_LENGTH) return 0; - + /* Start scanning backwards for a _h. */ len = len - 3 - 3 - 5 - 2; ptr = id + len;