https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113182
--- Comment #18 from dave.anglin at bell dot net --- On 2024-01-11 1:25 p.m., jakub at gcc dot gnu.org wrote: > The allocation is completely intentional, exactly to be able to track whether > it was referenced or not. Otherwise the exercise makes no sense. In assemble_external_libcall, it's intentional. But in process_pending_assemble_externals, all the allocations that are going to happen should have already happened. It is called in final. When the name encoding wasn't stripped, get_identifier just created a new identifier node that wasn't referenced. I tend to think there's a problem if the identifier node doesn't already exist in process_pending_assemble_externals.