]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR libfortran/24991 (gfortran build fails with - error:gthr-default.h: No such...
authorAlexandre Oliva <aoliva@redhat.com>
Tue, 29 Nov 2005 00:47:28 +0000 (00:47 +0000)
committerAlexandre Oliva <aoliva@gcc.gnu.org>
Tue, 29 Nov 2005 00:47:28 +0000 (00:47 +0000)
PR libfortran/24991
* config/darwin.c (machopic_indirection_name,
machopic_output_indirection): Follow transparent alias chain.

From-SVN: r107639

gcc/ChangeLog
gcc/config/darwin.c

index 789042d007793fe1a8e99105ced03674f10916d2..eb0b34ff3e6e1916715db1436a21d9744b170b5c 100644 (file)
@@ -1,3 +1,9 @@
+2005-11-28  Alexandre Oliva  <aoliva@redhat.com>
+
+       PR libfortran/24991
+       * config/darwin.c (machopic_indirection_name,
+       machopic_output_indirection): Follow transparent alias chain.
+
 2005-11-28  Alexandre Oliva  <aoliva@redhat.com>
 
        * varasm.c (ultimate_transparent_alias_target): Add comment.
index bd5d5a8c75b063a3e78a178393157c1458cd7bc7..98c7d30cd72c3061aa53e0191290d15c9205bfbf 100644 (file)
@@ -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] == '&')