From: Andi Kleen <a...@gcc.gnu.org> autofdo looks up inline stacks and tries to match them with the profile data using their symbol name. Make sure all decls that can be in a inline stack have a valid assembler name.
This fixes a bootstrap problem with autoprofiledbootstrap and LTO. 2024-10-30 Jason Merrill <ja...@redhat.com> Andrew Pinski <quic_apin...@quicinc.com> Andi Kleen <a...@gcc.gnu.org> gcc/ChangeLog: PR bootstrap/117350 * tree.cc (need_assembler_name_p): Keep assembler name for abstract declarations when autofdo is used. --- gcc/tree.cc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gcc/tree.cc b/gcc/tree.cc index b4c059d3b0db..92f99eaccd72 100644 --- a/gcc/tree.cc +++ b/gcc/tree.cc @@ -787,8 +787,9 @@ need_assembler_name_p (tree decl) || DECL_ASSEMBLER_NAME_SET_P (decl)) return false; - /* Abstract decls do not need an assembler name. */ - if (DECL_ABSTRACT_P (decl)) + /* Abstract decls do not need an assembler name, except they + can be looked up by autofdo. */ + if (DECL_ABSTRACT_P (decl) && !flag_auto_profile) return false; /* For VAR_DECLs, only static, public and external symbols need an -- 2.46.2