Skip to content

Commit 312dd73

Browse files
committed
skip vectors, they don't contain pointers
1 parent 4658b27 commit 312dd73

File tree

1 file changed

+1
-3
lines changed

1 file changed

+1
-3
lines changed

interp/memory.go

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -211,6 +211,7 @@ func (mv *memoryView) markExternal(llvmValue llvm.Value, mark uint8) error {
211211
llvmType := llvmValue.Type()
212212
switch llvmType.TypeKind() {
213213
case llvm.IntegerTypeKind, llvm.FloatTypeKind, llvm.DoubleTypeKind:
214+
case llvm.VectorTypeKind, llvm.MetadataTypeKind:
214215
// Nothing to do here. Integers and floats aren't pointers so don't
215216
// need any marking.
216217
case llvm.StructTypeKind:
@@ -223,8 +224,6 @@ func (mv *memoryView) markExternal(llvmValue llvm.Value, mark uint8) error {
223224
}
224225
}
225226
case llvm.ArrayTypeKind:
226-
fallthrough
227-
case llvm.VectorTypeKind:
228227
numElements := llvmType.ArrayLength()
229228
for i := 0; i < numElements; i++ {
230229
element := mv.r.builder.CreateExtractValue(llvmValue, i, "")
@@ -233,7 +232,6 @@ func (mv *memoryView) markExternal(llvmValue llvm.Value, mark uint8) error {
233232
return err
234233
}
235234
}
236-
case llvm.MetadataTypeKind:
237235
default:
238236
return errors.New("interp: unknown type kind in markExternalValue")
239237
}

0 commit comments

Comments
 (0)