Apply:
authorEric Christopher <echristo@gmail.com>
Fri, 12 Jan 2018 19:05:58 +0000 (11:05 -0800)
committerEric Christopher <echristo@gmail.com>
Fri, 12 Jan 2018 19:05:58 +0000 (11:05 -0800)
2018-01-12 Sterling Augustine <saugustine@google.com>

   * cref.cc (Cref_inputs::Cref_table_compare::operator): Add
   conditionals and calls to is_forwarder.

gold/ChangeLog
gold/cref.cc

index 2b8e7c575c22a7f15fb91faa33efe069db5bd745..951b54e93373c3692a8c6338bcb0ddebe51b9f8e 100644 (file)
@@ -1,3 +1,8 @@
+2018-01-12 Sterling Augustine <saugustine@google.com>
+
+       * cref.cc (Cref_inputs::Cref_table_compare::operator): Add
+       conditionals and calls to is_forwarder.
+
 2018-01-03  Alan Modra  <amodra@gmail.com>
 
        Update year range in copyright notice of all files.
index 84a9e46c84c0efbae64771e51cf6321583b1b85a..077745350159476ed12200e04dd48e57bfebe020 100644 (file)
@@ -236,9 +236,13 @@ Cref_inputs::Cref_table_compare::operator()(const Symbol* s1,
     }
 
   // We should never have two different symbols with the same name and
-  // version.
+  // version, where one doesn't forward to the other.
   if (s1 == s2)
     return false;
+  if (s1->is_forwarder() && !s2->is_forwarder())
+    return true;
+  if (!s1->is_forwarder() && s2->is_forwarder())
+    return false;
   gold_unreachable();
 }