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 ...

Reply via email to