https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104407
--- Comment #8 from Jakub Jelinek <jakub at gcc dot gnu.org> --- One way would be either not to call rtl = expand_expr (init, NULL_RTX, VOIDmode, EXPAND_INITIALIZER); during early_dwarf or do some extra checks whether it is safe. I see for the early_dwarf case it does native_encode_initializer through which obviously nothing that needs relocation like addresses of vars will make it through, so e.g. punting for early_dwarf before expand_expr if it refers to any decls would do the job.