compiler: in Sort_bindings return false if comparing value to itself

Some versions of std::sort may pass elements at the same iterator location.

Fixes golang/go#53483

Change-Id: I2dd04707af3c886e39c59387c955ac5f01932b61
GitHub-Last-Rev: aa751ed0b653bf01e89b4432b198dd38c2eadf72
GitHub-Pull-Request: golang/gofrontend#9
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/413434
Reviewed-by: Ian Lance Taylor <iant@google.com>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Cherry Mui <cherryyz@google.com>
diff --git a/go/export.cc b/go/export.cc
index a30b11a..7373dee 100644
--- a/go/export.cc
+++ b/go/export.cc
@@ -530,6 +530,9 @@
   bool
   operator()(const Named_object* n1, const Named_object* n2) const
   {
+    if (n1 == n2)
+      return false;
+
     if (n1->package() != n2->package())
       {
 	if (n1->package() == NULL)