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.
This commit is contained in:
Alan Modra 2020-08-23 21:05:34 +09:30
parent 252dcdf432
commit 12c4b9aad5
5 changed files with 31 additions and 27 deletions

View File

@ -1,3 +1,12 @@
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

View File

@ -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);
}

View File

@ -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 */

View File

@ -1,30 +1,19 @@
#objdump: -d
#objdump: -s -t
#name: c54x field directive
.*: +file format .*c54x.*
.*: file format .*
Disassembly of section .text:
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
#...
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.*
Contents of section \.text:
0000 f02a0056 01000000 21430f00 00608a00 .*

View File

@ -13,4 +13,6 @@ Disassembly of section .text:
0+004 <LABEL>:
4: 000a.*
0+005 <SYMTAB>:
5: 0035.*