const char * machopic_function_base_name (void) { /* if dynamic-no-pic is on, we should not get here */ gcc_assert (!MACHO_DYNAMIC_NO_PIC_P); if (function_base == NULL) function_base = (char *) ggc_alloc_string ("<pic base>", sizeof ("<pic base>")); current_function_uses_pic_offset_table = 1; return function_base; }
const char * i386_pe_strip_name_encoding_full (const char *str) { const char *p; const char *name = i386_pe_strip_name_encoding (str); /* Strip leading '@' on fastcall symbols. */ if (*name == '@') name++; /* Strip trailing "@n". */ p = strchr (name, '@'); if (p) return ggc_alloc_string (name, p - name); return name; }
const char * i386_nlm_strip_name_encoding (const char *str) { const char *name = default_strip_name_encoding (str); if (*str != '*' && (*name == '_' || *name == '@')) { const char *p = strchr (name + 1, '@'); if (p) { ++name; if (ISDIGIT (p[1])) name = ggc_alloc_string (name, p - name); else if (!ISDIGIT (*name) || ++name != p) abort(); } } return name; }
const char * i386_nlm_strip_name_encoding (const char *str) { const char *name = default_strip_name_encoding (str); if (*str != '*' && (*name == '_' || *name == '@')) { const char *p = strchr (name + 1, '@'); if (p) { ++name; if (ISDIGIT (p[1])) name = ggc_alloc_string (name, p - name); else { gcc_assert (ISDIGIT (*name)); name++; gcc_assert (name == p); } } } return name; }