https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111635
--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Hmm: ``` static void build_gcov_info_var_registration (tree gcov_info_type) { tree var = build_decl (BUILTINS_LOCATION, VAR_DECL, NULL_TREE, build_pointer_type (gcov_info_type)); TREE_STATIC (var) = 1; TREE_READONLY (var) = 1; char name_buf[32]; ASM_GENERATE_INTERNAL_LABEL (name_buf, "LPBX", 2); DECL_NAME (var) = get_identifier (name_buf); get_section (profile_info_section, SECTION_UNNAMED, NULL); set_decl_section_name (var, profile_info_section); mark_decl_referenced (var); DECL_INITIAL (var) = build_fold_addr_expr (gcov_info_var); varpool_node::finalize_decl (var); } ``` ``` /* Make local constant labels linker-visible, so that if one follows a weak_global constant, ld64 will be able to separate the atoms. */ #undef ASM_GENERATE_INTERNAL_LABEL #define ASM_GENERATE_INTERNAL_LABEL(LABEL,PREFIX,NUM) \ do { \ if (strcmp ("LC", PREFIX) == 0) \ sprintf (LABEL, "*%s%ld", "lC", (long)(NUM)); \ else if (strcmp ("Lubsan_data", PREFIX) == 0) \ sprintf (LABEL, "*%s%ld", "lubsan_data", (long)(NUM));\ else if (strcmp ("Lubsan_type", PREFIX) == 0) \ sprintf (LABEL, "*%s%ld", "lubsan_type", (long)(NUM));\ else if (strcmp ("LASAN", PREFIX) == 0) \ sprintf (LABEL, "*%s%ld", "lASAN", (long)(NUM));\ else if (strcmp ("LTRAMP", PREFIX) == 0) \ sprintf (LABEL, "*%s%ld", "lTRAMP", (long)(NUM));\ else \ sprintf (LABEL, "*%s%ld", PREFIX, (long)(NUM)); \ } while (0) ``` Looks like this PREFIX needs to be special cased too ...