aboutsummaryrefslogtreecommitdiff
path: root/gcc/gimplify.c
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@gcc.gnu.org>2019-07-10 18:12:54 +0000
committerIan Lance Taylor <ian@gcc.gnu.org>2019-07-10 18:12:54 +0000
commit4b8d9b23371d3ee0f7a9c1d99e80745400542930 (patch)
treec5120040301f2abab3b22bbccab6ca5c6c63ddf0 /gcc/gimplify.c
parent41112d9519d48a503864a157d90fd3c6ef974bfe (diff)
downloadgcc-4b8d9b23371d3ee0f7a9c1d99e80745400542930.zip
gcc-4b8d9b23371d3ee0f7a9c1d99e80745400542930.tar.gz
gcc-4b8d9b23371d3ee0f7a9c1d99e80745400542930.tar.bz2
compiler: finalize methods when importing types
This patch changes the compiler to be more aggressive about finalizing methods on imported types, to avoid problems with interface types that are imported but remain unreachable until a later stage in the compilation. The normal pattern prior to this change was that the import process would leave imported interface types alone, and rely on Gogo::finalize_methods to locate and finalize all interface types at a later point. This way of doing things was not working in all cases due to the fact that we can import an interface type that is only reachable from the body of an inlinable function, meaning that we can't "find" the type during the methods finalize phase. The importer's Import::read_types() now makes a pass over all imported types to finalize methods on any newly imported type, which takes care of the issue. New test case for this problem in CL 185517. Fixes golang/go#33013 Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/185518 From-SVN: r273364
Diffstat (limited to 'gcc/gimplify.c')
0 files changed, 0 insertions, 0 deletions