Beispiel #1
0
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;
}
Beispiel #2
0
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;
}
Beispiel #3
0
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;
}
Beispiel #4
0
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;
}