• LE Manh Cuong's avatar
    cmd/compile: fix literal struct interface {} lost passing by value · d47db6dc
    LE Manh Cuong authored
    CL 135377 introduces pass strings and slices to convT2{E,I} by value.
    Before that CL, all types, except interface will be allocated temporary
    address. The CL changes the logic that only constant and type which
    needs address (determine by convFuncName) will be allocated.
    
    It fails to cover the case where type is static composite literal.
    Adding condition to check that case fixes the issue.
    
    Also, static composite literal node implies constant type, so consttype
    checking can be removed.
    
    Fixes #30956
    
    Change-Id: Ifc750a029fb4889c2d06e73e44bf85e6ef4ce881
    Reviewed-on: https://go-review.googlesource.com/c/go/+/168858
    Run-TryBot: Ian Lance Taylor <iant@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: default avatarKeith Randall <khr@golang.org>
    d47db6dc
order.go 35.9 KB