This is the mail archive of the
gcc-cvs@gcc.gnu.org
mailing list for the GCC project.
r278275 - in /trunk/gcc/go/gofrontend: MERGE go...
- From: ian at gcc dot gnu dot org
- To: gcc-cvs at gcc dot gnu dot org
- Date: Fri, 15 Nov 2019 03:28:49 -0000
- Subject: r278275 - in /trunk/gcc/go/gofrontend: MERGE go...
Author: ian
Date: Fri Nov 15 03:28:49 2019
New Revision: 278275
URL: https://gcc.gnu.org/viewcvs?rev=278275&root=gcc&view=rev
Log:
compiler: fix buglet in function inlining related to sink names
When the compiler writes an inlinable function to the export data,
parameter names are written out (in Export::write_name) using the
Gogo::message_name as opposed to a raw/encoded name. This means that
sink parameters (those named "_") get created with the name "_"
instead of "._" (the name created by the lexer/parser). This confuses
Gogo::is_sink_name, which looks for the latter sequence and not just
"_". This can cause issues later on if an inlinable function is
imported and fed through the rest of the compiler (things that are
sinks are no recognized as such). To fix these issues, change
Gogo::is_sink_name to return true for either variants ("_" or "._").
Fixes golang/go#35586.
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/207259
Modified:
trunk/gcc/go/gofrontend/MERGE
trunk/gcc/go/gofrontend/gogo.h