PR117350: Keep assembler name for abstract decls for autofdo

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  <jason@redhat.com>
	    Andrew Pinski  <quic_apinski@quicinc.com>
	    Andi Kleen  <ak@gcc.gnu.org>
gcc/ChangeLog:

	PR bootstrap/117350
	* tree.cc (need_assembler_name_p): Keep assembler name
	for abstract declarations when autofdo is used.
This commit is contained in:
Andi Kleen 2024-10-31 10:26:16 -07:00
parent 74cee438f2
commit 5e718a7a78

View file

@ -798,8 +798,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