https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84213
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jakub at gcc dot gnu.org --- Comment #9 from Richard Biener <rguenth at gcc dot gnu.org> --- Another possibility would be to add the info symbolically by refering to the early DIE of the other entity. Not sure if that works for the Ada cases? We have DW_OP_GNU_variable_value but in this case we want the DIEs address. Using DECL_PRESERVE_P is kind-of a hack. Similar would be guarding the offending call with !flag_generate_lto && !flag_generate_offload ... For the fortran case we don't have a DIE for the refered entity for some reason. Btw, if you compile any of your testcases for the issue with -g -flto can you verify if the generated object files contain relocations in the early LTO debug sections? Those should not refer to real symbols... else the problem will manifest with Ada as well. So I think we do have to revert the revision in question (or put in the above hack).