Commit 3e5977f9 authored by Ian Lance Taylor's avatar Ian Lance Taylor Committed by Andrew Gerrand
Browse files

[release-branch.go1.4] cmd/gc: treat non-local vars inlined into wrapper as escaping

The compiler has a phase ordering problem.  Escape analysis runs
before wrapper generation.  When a generated wrapper calls a method
defined in a different package, if that call is inlined, there will be
no escape information for the variables defined in the inlined call.
Those variables will be placed on the stack, which fails if they
actually do escape.

There are probably various complex ways to fix this.  This is a simple
way to avoid it: when a generated wrapper calls a method defined in a
different package, treat all local variables as escaping.

Fixes #9537.

Change-Id: I530f39346de16ad173371c6c3f69cc189351a4e9
Reviewed-on: https://go-review.googlesource.com/3092


Reviewed-by: default avatarRuss Cox <rsc@golang.org>
(cherry picked from commit ec0ebc22)
Reviewed-on: https://go-review.googlesource.com/5003


Run-TryBot: Andrew Gerrand <adg@golang.org>
Reviewed-by: default avatarAndrew Gerrand <adg@golang.org>
parent 02cf0526
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment