cmd/compile/internal: loop opt

Change-Id: I19faa360d72d19943c66c50167e2b8a17f046b59
This commit is contained in:
cui 2021-02-19 01:24:13 +08:00
parent 609d82b289
commit 94fea3d572
1 changed files with 5 additions and 3 deletions

View File

@ -619,9 +619,11 @@ func PtrDataSize(t *Type) int64 {
case TSTRUCT:
// Find the last field that has pointers.
var lastPtrField *Field
for _, t1 := range t.Fields().Slice() {
if t1.Type.HasPointers() {
lastPtrField = t1
fs := t.Fields().Slice()
for i := len(fs) - 1; i >= 0; i-- {
if fs[i].Type.HasPointers() {
lastPtrField = fs[i]
break
}
}
return lastPtrField.Offset + PtrDataSize(lastPtrField.Type)