compiler: make comparison operator() methods const

This is required for new versions of libgo in C++17 mode.

Fixes GCC PR 83102.

Change-Id: Iba7a9010b9fb748e0b93f54e25941d776015388f
Reviewed-on: https://go-review.googlesource.com/79396
Reviewed-by: Ian Lance Taylor <iant@golang.org>
diff --git a/go/gogo.h b/go/gogo.h
index 345a15d..338770f 100644
--- a/go/gogo.h
+++ b/go/gogo.h
@@ -117,7 +117,7 @@
 // For sorting purposes.
 
 struct Import_init_lt {
-  bool operator()(const Import_init* i1, const Import_init* i2)
+  bool operator()(const Import_init* i1, const Import_init* i2) const
   {
     return i1->init_name() < i2->init_name();
   }
diff --git a/go/parse.cc b/go/parse.cc
index 28b1772..f7d53af 100644
--- a/go/parse.cc
+++ b/go/parse.cc
@@ -20,7 +20,7 @@
 
 bool
 Parse::Enclosing_var_comparison::operator()(const Enclosing_var& v1,
-					    const Enclosing_var& v2)
+					    const Enclosing_var& v2) const
 {
   if (v1.var() == v2.var())
     return false;
diff --git a/go/parse.h b/go/parse.h
index e416072..2ba8457 100644
--- a/go/parse.h
+++ b/go/parse.h
@@ -127,7 +127,7 @@
   struct Enclosing_var_comparison
   {
     bool
-    operator()(const Enclosing_var&, const Enclosing_var&);
+    operator()(const Enclosing_var&, const Enclosing_var&) const;
   };
 
   // A set of Enclosing_var entries.