Filled an issue: https://github.com/golang/go/issues/46908

On Thursday, June 24, 2021 at 10:50:31 PM UTC-4 tapi...@gmail.com wrote:

> Now, I think the escape analysis message should be "a + a does not 
> escapes",
> which accurate meaning is "the header part of a + a does not escape".
> It is impossible for the compiler to determine whether or notthe 
> underlying part of "a + a" will escape to heap.
>
> On Wednesday, June 23, 2021 at 12:00:43 PM UTC-4 jake...@gmail.com wrote:
>
>> It does not answer your question, but possibly provides more clues: 
>> https://play.golang.org/p/s9Xnpcx8Mys
>>
>> package main
>>
>> func main() {
>>     var a = "b"
>>     x := a + a // does not escape
>>     x = a + a  // does not escape
>>     for i := 0; i < 1; i++ {
>>
>>         x = a + a  // a + a escapes to heap
>>         y := a + a // does not escape
>>         println(y)
>>         println(x)
>>     }
>> }
>>
>>
>> Only when a variable outside the loop is set inside the loop does it 
>> escape.  
>>
>> On Wednesday, June 23, 2021 at 12:39:17 AM UTC-4 tapi...@gmail.com wrote:
>>
>>>
>>> package main
>>>
>>> import "testing"
>>>
>>> var s33 = []byte{32: 'b'}
>>>
>>> var a = string(s33)
>>>
>>> func main() {
>>>     x := a + a // a + a does not escape
>>>     println(x)
>>> }
>>>
>>> func Benchmark_e_33(b *testing.B) {
>>>     var x string
>>>     for i := 0; i < b.N; i++ {
>>>         x = a + a // a + a escapes to heap
>>>     }
>>>     println(x)
>>> }
>>>
>>

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/69e90ade-3124-4949-99d9-e0ef72f5b7d7n%40googlegroups.com.

Reply via email to