diff options
author | shebs <shebs@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-09-04 20:58:19 +0000 |
---|---|---|
committer | shebs <shebs@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-09-04 20:58:19 +0000 |
commit | d10058249579c5f3dad6982353c8459ff585a5e6 (patch) | |
tree | 17cebf8a784d26dc867f2cc1eecac92a4975cb9e /gcc/config/darwin.c | |
parent | 8c5845924576f2fcdf955f299830454c290d5943 (diff) | |
download | gcc-d10058249579c5f3dad6982353c8459ff585a5e6.tar.gz |
* config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Define.
* config/darwin.c (machopic_stub_name): Account for internally
generated lib calls such as memcpy.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@45385 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/darwin.c')
-rw-r--r-- | gcc/config/darwin.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/gcc/config/darwin.c b/gcc/config/darwin.c index 3f8cffdd230..a46d46b7d5f 100644 --- a/gcc/config/darwin.c +++ b/gcc/config/darwin.c @@ -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)); } |