i386 gas: don't leak op_hash or reg_hash memory
authorAlan Modra <amodra@gmail.com>
Thu, 7 Jul 2022 12:36:55 +0000 (22:06 +0930)
committerAlan Modra <amodra@gmail.com>
Sat, 9 Jul 2022 12:05:02 +0000 (21:35 +0930)
commit654d6f31a644d1381c76d3d70ce3ca9f45a08597
treec4271dfc64112bdac82ffa0d0cf8cc3eca09e402
parenta887be69963c40ced36e319e5fb14b3de4b6658b
i386 gas: don't leak op_hash or reg_hash memory

This tidies memory used by the two x86 gas string hash tables before
exiting.  I'm using a two-pronged approach, firstly the obvious call
to htab_delete plus telling the libiberty/hashtab.c infrastructure to
free tuples generated by str_hash_insert, and secondly putting the x86
core_optab memory on the notes obstack.  It would be possible to free
core_optab memory by using a custom hash table del_f on x86, as I do
for arc, but a later patch will move all the string hash memory to the
notes obstack.

* config/tc-i386.c (md_begin): Use notes_alloc for core_optab.
(386_md_end): New function.
* config/tc-i386.h (386_md_end): Declare.
(md_end): Define.
* hash.h (str_htab_create): Pass free as del_f.
gas/config/tc-i386.c
gas/config/tc-i386.h
gas/hash.h