https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93274
--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> --- Probably caused by /* IFUNC's have to be globally visible. So, if the default_decl is not, then the name of the IFUNC should be made unique. */ if (TREE_PUBLIC (default_decl) == 0) { char *ifunc_name = make_unique_name (default_decl, "ifunc", true); symtab->change_decl_assembler_name (ifunc_alias_decl, get_identifier (ifunc_name)); not sure if easy to avoid.