darwin.h (ASM_DECLARE_FUNCTION_NAME): Define.

* config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Define.
        * config/darwin.c (machopic_stub_name): Account for internally
        generated lib calls such as memcpy.

From-SVN: r45385
This commit is contained in:
Stan Shebs 2001-09-04 20:58:19 +00:00 committed by Stan Shebs
parent 4c21ef03d1
commit 9391328103
3 changed files with 32 additions and 2 deletions

View File

@ -1,3 +1,9 @@
2001-09-04 Stan Shebs <shebs@apple.com>
* config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Define.
* config/darwin.c (machopic_stub_name): Account for internally
generated lib calls such as memcpy.
2001-09-04 Richard Henderson <rth@redhat.com>
* unwind.h (_UA_END_OF_STACK): New flag.

View File

@ -324,14 +324,22 @@ machopic_stub_name (name)
const char *name;
{
tree temp, ident = get_identifier (name);
const char *tname;
for (temp = machopic_stubs;
temp != NULL_TREE;
temp = TREE_CHAIN (temp))
{
if (ident == TREE_VALUE (temp))
return IDENTIFIER_POINTER (TREE_PURPOSE (temp));
if (strcmp (name, IDENTIFIER_POINTER (TREE_VALUE (temp))) == 0)
tname = IDENTIFIER_POINTER (TREE_VALUE (temp));
if (strcmp (name, tname) == 0)
return IDENTIFIER_POINTER (TREE_PURPOSE (temp));
/* A library call name might not be section-encoded yet, so try
it against a stripped name. */
if (name[0] != '!'
&& tname[0] == '!'
&& strcmp (name, tname + 4) == 0)
return IDENTIFIER_POINTER (TREE_PURPOSE (temp));
}

View File

@ -215,6 +215,22 @@ do { text_section (); \
ASM_OUTPUT_LABEL (FILE, xname); \
} while (0)
#define ASM_DECLARE_FUNCTION_NAME(FILE, NAME, DECL) \
do { \
char *xname = NAME; \
if (GET_CODE (XEXP (DECL_RTL (DECL), 0)) != SYMBOL_REF) \
xname = IDENTIFIER_POINTER (DECL_NAME (DECL)); \
if ((TREE_STATIC (DECL) \
&& (!DECL_COMMON (DECL) || !TREE_PUBLIC (DECL))) \
|| DECL_INITIAL (DECL)) \
machopic_define_name (xname); \
if ((TREE_STATIC (DECL) \
&& (!DECL_COMMON (DECL) || !TREE_PUBLIC (DECL))) \
|| DECL_INITIAL (DECL)) \
ENCODE_SECTION_INFO (DECL); \
ASM_OUTPUT_LABEL (FILE, xname); \
} while (0)
/* Wrap new method names in quotes so the assembler doesn't gag.
Make Objective-C internal symbols local. */