diff options
author | Alexandre Oliva <aoliva@redhat.com> | 2005-11-29 00:47:28 +0000 |
---|---|---|
committer | Alexandre Oliva <aoliva@gcc.gnu.org> | 2005-11-29 00:47:28 +0000 |
commit | 0a6a4494e4fd89495478275905a4655c8cd6382e (patch) | |
tree | 3a3f6245a7abb1c5fdf4196fd76d75067eaa9e74 /gcc/config/darwin.c | |
parent | 6b12b9b330b5fd638ca23f58db49a5a1d3417455 (diff) | |
download | gcc-0a6a4494e4fd89495478275905a4655c8cd6382e.zip gcc-0a6a4494e4fd89495478275905a4655c8cd6382e.tar.gz gcc-0a6a4494e4fd89495478275905a4655c8cd6382e.tar.bz2 |
re PR libfortran/24991 (gfortran build fails with - error:gthr-default.h: No such file or directory)
PR libfortran/24991
* config/darwin.c (machopic_indirection_name,
machopic_output_indirection): Follow transparent alias chain.
From-SVN: r107639
Diffstat (limited to 'gcc/config/darwin.c')
-rw-r--r-- | gcc/config/darwin.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/gcc/config/darwin.c b/gcc/config/darwin.c index bd5d5a8..98c7d30 100644 --- a/gcc/config/darwin.c +++ b/gcc/config/darwin.c @@ -316,6 +316,21 @@ machopic_indirection_name (rtx sym_ref, bool stub_p) const char *suffix; const char *prefix = user_label_prefix; const char *quote = ""; + tree id; + + id = maybe_get_identifier (name); + if (id) + { + tree id_orig = id; + + while (IDENTIFIER_TRANSPARENT_ALIAS (id)) + id = TREE_CHAIN (id); + if (id != id_orig) + { + name = IDENTIFIER_POINTER (id); + namelen = strlen (name); + } + } if (name[0] == '*') { @@ -861,6 +876,18 @@ machopic_output_indirection (void **slot, void *data) { char *sym; char *stub; + tree id; + + id = maybe_get_identifier (sym_name); + if (id) + { + tree id_orig = id; + + while (IDENTIFIER_TRANSPARENT_ALIAS (id)) + id = TREE_CHAIN (id); + if (id != id_orig) + sym_name = IDENTIFIER_POINTER (id); + } sym = alloca (strlen (sym_name) + 2); if (sym_name[0] == '*' || sym_name[0] == '&') |