From 1e8e49f135c814bd268289609dd0aea305ed546e Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Thu, 15 Oct 2020 15:34:14 -0700 Subject: [PATCH] compiler: don't export function type parameter names When hashing a function type the parameter names are ignored. Therefore, we should not write them into the export data. Otherwise, minor changes in the order in which we process the types can cause the export data to change uselessly, leading to unnecessary rebuilds. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/262818 --- gcc/go/gofrontend/MERGE | 2 +- gcc/go/gofrontend/types.cc | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/gcc/go/gofrontend/MERGE b/gcc/go/gofrontend/MERGE index 53551030eae..7496770f018 100644 --- a/gcc/go/gofrontend/MERGE +++ b/gcc/go/gofrontend/MERGE @@ -1,4 +1,4 @@ -71e161daafa1e19c2c53e28fffc3954d88a4cdb2 +3b6252d2d3ce559826303dac07538da6e78940d8 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 e7a742f6366..eb9c766b742 100644 --- a/gcc/go/gofrontend/types.cc +++ b/gcc/go/gofrontend/types.cc @@ -5182,7 +5182,11 @@ Function_type::do_export(Export* exp) const first = false; else exp->write_c_string(", "); - exp->write_name(p->name()); + // The hash for a function type ignores parameter names, so + // we don't want to write them out here. If we did write + // them out, we could get spurious changes in export data + // when recompiling a package. + exp->write_name(""); exp->write_c_string(" "); if (!is_varargs || p + 1 != this->parameters_->end()) exp->write_type(p->type()); @@ -5213,7 +5217,7 @@ Function_type::do_export(Export* exp) const first = false; else exp->write_c_string(", "); - exp->write_name(p->name()); + exp->write_name(""); exp->write_c_string(" "); exp->write_type(p->type()); } -- 2.30.2