diff options
author | Alan Modra <amodra@gmail.com> | 2020-08-23 21:05:34 +0930 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2020-08-24 21:48:08 +0930 |
commit | 12c4b9aad5e45fa38e31801e13f50b730925c913 (patch) | |
tree | 8940621f7a4bc39bd2fd08edd80c12cd17ea4bb1 | |
parent | 252dcdf432c67f6baafb766ed068c64db1eb2bad (diff) | |
download | binutils-12c4b9aad5e45fa38e31801e13f50b730925c913.zip binutils-12c4b9aad5e45fa38e31801e13f50b730925c913.tar.gz binutils-12c4b9aad5e45fa38e31801e13f50b730925c913.tar.bz2 |
tic54x fixes
A number of the tic54x tests were failing, and I thought it worth
investigating since the target makes use of a lot of hash tables, and
we've just changed gas hash tables. It turns out none of the gas
failures were due to hashing.
* config/tc-tic54x.c (stag_add_field_symbols): Don't free "name"
in case where it isn't copied.
* config/tc-tic54x.h (LOCAL_LABELS_FB): Undef.
* testsuite/gas/tic54x/field.d: Dump section contents and symbols
rather than disassembling.
* testsuite/gas/tic54x/set.d: Adjust for newer disassembly.
-rw-r--r-- | gas/ChangeLog | 9 | ||||
-rw-r--r-- | gas/config/tc-tic54x.c | 4 | ||||
-rw-r--r-- | gas/config/tc-tic54x.h | 2 | ||||
-rw-r--r-- | gas/testsuite/gas/tic54x/field.d | 45 | ||||
-rw-r--r-- | gas/testsuite/gas/tic54x/set.d | 2 |
5 files changed, 33 insertions, 29 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index 6b634a0..60114ed 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,5 +1,14 @@ 2020-08-24 Alan Modra <amodra@gmail.com> + * config/tc-tic54x.c (stag_add_field_symbols): Don't free "name" + in case where it isn't copied. + * config/tc-tic54x.h (LOCAL_LABELS_FB): Undef. + * testsuite/gas/tic54x/field.d: Dump section contents and symbols + rather than disassembling. + * testsuite/gas/tic54x/set.d: Adjust for newer disassembly. + +2020-08-24 Alan Modra <amodra@gmail.com> + * config/tc-aarch64.c (md_begin): Don't bother checking for out of memory failure from str_htab_create. * config/tc-arc.c (arc_insert_opcode, md_begin): Likewise. diff --git a/gas/config/tc-tic54x.c b/gas/config/tc-tic54x.c index 62d49d9..5fe1b2f 100644 --- a/gas/config/tc-tic54x.c +++ b/gas/config/tc-tic54x.c @@ -551,6 +551,7 @@ stag_add_field_symbols (struct stag *stag, while (field != NULL) { char *name = concat (prefix, field->name, NULL); + char *freename = name; if (rootsym == NULL) { @@ -568,6 +569,7 @@ stag_add_field_symbols (struct stag *stag, replacement = concat (S_GET_NAME (rootsym), "+", root_stag_name, name + strlen (S_GET_NAME (rootsym)), NULL); str_hash_insert (subsym_hash[0], name, replacement, 0); + freename = NULL; } /* Recurse if the field is a structure. @@ -577,7 +579,7 @@ stag_add_field_symbols (struct stag *stag, field->offset, rootsym, root_stag_name); field = field->next; - free (name); + free (freename); } free (prefix); } diff --git a/gas/config/tc-tic54x.h b/gas/config/tc-tic54x.h index 8d0d0f1..5ba4a6a 100644 --- a/gas/config/tc-tic54x.h +++ b/gas/config/tc-tic54x.h @@ -35,6 +35,8 @@ #define MAX_OPERANDS 4 #define PARALLEL_SEPARATOR '|' #define LABELS_WITHOUT_COLONS 1 +#undef LOCAL_LABELS_FB + /* accept 0FFFFh, 1010b, etc. */ #define NUMBERS_WITH_SUFFIX 1 /* $ is section program counter */ diff --git a/gas/testsuite/gas/tic54x/field.d b/gas/testsuite/gas/tic54x/field.d index 60a4868..941d36b 100644 --- a/gas/testsuite/gas/tic54x/field.d +++ b/gas/testsuite/gas/tic54x/field.d @@ -1,30 +1,19 @@ -#objdump: -d +#objdump: -s -t #name: c54x field directive -.*: +file format .*c54x.* - -Disassembly of section .text: - -0+000 <f1>: - 0: 2af0.* - 1: 5600.* - -0+001 <f2>: - 1: 5600.* - -0+002 <f4>: - 2: 0001.* - -0+003 <f5>: - 3: 0000.* - 4: 4321.* - -0+005 <f6>: - 5: 000f.* - -0+006 <f7>: - 6: 6000.* - 7: 008a.* - -0+007 <f8>: - 7: 008a.* +.*: file format .* + +SYMBOL TABLE: +#... +.* 0x0+0 f1 +.* 0x0+1 f2 +.* 0x0+1 f3 +.* 0x0+2 f4 +.* 0x0+3 f5 +.* 0x0+5 f6 +.* 0x0+6 f7 +.* 0x0+7 f8 +#... + +Contents of section \.text: + 0000 f02a0056 01000000 21430f00 00608a00 .* diff --git a/gas/testsuite/gas/tic54x/set.d b/gas/testsuite/gas/tic54x/set.d index 8f66188..1fd69bf 100644 --- a/gas/testsuite/gas/tic54x/set.d +++ b/gas/testsuite/gas/tic54x/set.d @@ -13,4 +13,6 @@ Disassembly of section .text: 0+004 <LABEL>: 4: 000a.* + +0+005 <SYMTAB>: 5: 0035.* |