https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117350
Jason Merrill <jason at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jason at gcc dot gnu.org --- Comment #20 from Jason Merrill <jason at gcc dot gnu.org> --- The problem seems to be /* Abstract decls do not need an assembler name. */ if (DECL_ABSTRACT_P (decl)) => return false; in need_assembler_name_p combined with if (DECL_FROM_INLINE (decl)) return get_index_by_decl (DECL_ABSTRACT_ORIGIN (decl)); in get_index_by_decl. These two functions are making incompatible assumptions; the latter causes autofdo to rely on the assembler name for the abstract maybe-in-charge constructor that the former decided wasn't needed.