aboutsummaryrefslogtreecommitdiff
path: root/gcc/go
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@gcc.gnu.org>2016-02-03 05:27:16 +0000
committerIan Lance Taylor <ian@gcc.gnu.org>2016-02-03 05:27:16 +0000
commite2bd26b72289a01eed0248a80abb5fb3687497d4 (patch)
tree3abff5cd3ab2c4332a14ab9b44add5c578b828c5 /gcc/go
parent6f4949afaf3dec7911ac33521dd592761e0fe90d (diff)
downloadgcc-e2bd26b72289a01eed0248a80abb5fb3687497d4.zip
gcc-e2bd26b72289a01eed0248a80abb5fb3687497d4.tar.gz
gcc-e2bd26b72289a01eed0248a80abb5fb3687497d4.tar.bz2
compiler: Unpack method names when sorting them.
Reviewed-on: https://go-review.googlesource.com/19177 From-SVN: r233097
Diffstat (limited to 'gcc/go')
-rw-r--r--gcc/go/gofrontend/MERGE2
-rw-r--r--gcc/go/gofrontend/types.cc13
2 files changed, 11 insertions, 4 deletions
diff --git a/gcc/go/gofrontend/MERGE b/gcc/go/gofrontend/MERGE
index 755dee5..3fb2a3e 100644
--- a/gcc/go/gofrontend/MERGE
+++ b/gcc/go/gofrontend/MERGE
@@ -1,4 +1,4 @@
-8dce33f24dd3a34e3574c1d2604428586b63c1aa
+a408bef550251926c28673818db2c64302faac1d
The first line of this file holds the git revision number of the last
merge done from the gofrontend repository.
diff --git a/gcc/go/gofrontend/types.cc b/gcc/go/gofrontend/types.cc
index 52a1e4d..c43d064 100644
--- a/gcc/go/gofrontend/types.cc
+++ b/gcc/go/gofrontend/types.cc
@@ -2307,7 +2307,10 @@ class Sort_methods
bool
operator()(const std::pair<std::string, const Method*>& m1,
const std::pair<std::string, const Method*>& m2) const
- { return m1.first < m2.first; }
+ {
+ return (Gogo::unpack_hidden_name(m1.first)
+ < Gogo::unpack_hidden_name(m2.first));
+ }
};
// Return a composite literal for the type method table for this type.
@@ -7684,7 +7687,8 @@ Interface_type::get_backend_methods(Gogo* gogo)
mfields[i].location = loc;
// Sanity check: the names should be sorted.
- go_assert(p->name() > last_name);
+ go_assert(Gogo::unpack_hidden_name(p->name())
+ > Gogo::unpack_hidden_name(last_name));
last_name = p->name();
}
@@ -10489,7 +10493,10 @@ struct Typed_identifier_list_sort
public:
bool
operator()(const Typed_identifier& t1, const Typed_identifier& t2) const
- { return t1.name() < t2.name(); }
+ {
+ return (Gogo::unpack_hidden_name(t1.name())
+ < Gogo::unpack_hidden_name(t2.name()));
+ }
};
void