https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94469
--- Comment #7 from Richard Biener <rguenth at gcc dot gnu.org> --- (In reply to Richard Biener from comment #6) > Btw, I still wonder how it works with abstract functions, inline and > concrete instances. Works in gdb, that is - will dig into it a bit after > lunch. So here I see us (without LTO) putting DW_AT_location attributes on the abstract instance copy. That kind-of makes it not abstract anymore, no? But that way we avoid emitting multiple DIEs for local statics. With -flto the same problem appears there because we cannot annotate the early CUs DIE with a location so the concrete instance copy gets [generated and] the location. So while I intended to have the early CUs behave like fully abstract the actual DWARF is different. I understand that if I emit the early CU as partial unit it becomes abstract? Note we do emit DW_AT_const_value to early optimized out decls - would those still be found when the early CU is partial [and not imported anywhere]?