gas dwarf2dbg.c tidy
authorAlan Modra <amodra@gmail.com>
Thu, 9 Jun 2022 10:23:44 +0000 (19:53 +0930)
committerAlan Modra <amodra@gmail.com>
Tue, 14 Jun 2022 00:26:45 +0000 (09:56 +0930)
commit82cb2524323d4f6eeb2adae3451f31754e271126
tree5cc2389d9e971759b49fcdac75bd91a0a6ef1888
parenta2e7f81e382d641780ce5ae0fe72a309c8a4964d
gas dwarf2dbg.c tidy

Make it a little more obvious that remap_debug_filename returns an
allocated string (that should be freed) by returning a char * rather
than const char *.  Free a few missed cases in dwarf2dbg.c, and free
other memory allocated in dwarf2dbg.c.  Also remove static
initialisation of variables and initialise in dwarf2_init instead,
in order to ensure gas state is saner for oss-fuzz.

* remap.c (remap_debug_filename): Remove const from return.
* as.h (remap_debug_filename): Update prototype.
* config/obj-elf.c (obj_elf_ident): Simplify free of
remap_debug_filename output.
* stabs.c (stabs_generate_asm_file): Likewise.
* dwarf2dbg.c (dirs, dirs_in_use, dirs_allocated, current): Don't
initialise statically..
(dwarf2_init): ..do so here, along with most other static vars.
(assign_file_to_slot): Don't set files_allocated until we
succeed in allocating memory.
(purge_generated_debug): Add bool param, free more stuff if true.
(dwarf2_directive_filename): Adjust purge_generated_debug call.
(process_entries): Don't free line_entry here..
(dwarf2_cleanup): ..do so here instead, new function.
(dwarf2_finish): Call dwarf2_cleanup.  When chaining together
subseg line entries, unhook entries from old subseg list.
(dwarf2_directive_loc): Free remap_debug_filename string.
(out_dir_and_file_list): Likewise.
(out_debug_str): Likewise.
gas/as.h
gas/config/obj-elf.c
gas/dwarf2dbg.c
gas/remap.c
gas/stabs.c