aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2020-08-23 21:05:34 +0930
committerAlan Modra <amodra@gmail.com>2020-08-24 21:48:08 +0930
commit12c4b9aad5e45fa38e31801e13f50b730925c913 (patch)
tree8940621f7a4bc39bd2fd08edd80c12cd17ea4bb1
parent252dcdf432c67f6baafb766ed068c64db1eb2bad (diff)
downloadbinutils-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/ChangeLog9
-rw-r--r--gas/config/tc-tic54x.c4
-rw-r--r--gas/config/tc-tic54x.h2
-rw-r--r--gas/testsuite/gas/tic54x/field.d45
-rw-r--r--gas/testsuite/gas/tic54x/set.d2
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.*