https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86964
--- Comment #7 from Richard Biener <rguenth at gcc dot gnu.org> --- Created attachment 45748 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=45748&action=edit patch Thanks for working on this. For extern float x; void foo() { } I still see the basetype DIE for float emitted. When using struct S { int i; }; extern struct S x; the DIE for S disappears (good) but the one for int remains. That looks like a pre-exisiting issue with unused debug-types elimination though. I have attached a patch variant that applies to trunk and maintained branches that fixes some coding-style issues, adds a testcase and a ChangeLog entry. Can you see if it looks fine to you and propose the patch on gcc-patc...@gcc.gnu.org ?