diff --git a/interp/memory.go b/interp/memory.go index 2812cd01c2..f7d190e3b4 100644 --- a/interp/memory.go +++ b/interp/memory.go @@ -222,7 +222,7 @@ func (mv *memoryView) markExternal(llvmValue llvm.Value, mark uint8) error { return err } } - case llvm.ArrayTypeKind: + case llvm.ArrayTypeKind, llvm.VectorTypeKind: numElements := llvmType.ArrayLength() for i := 0; i < numElements; i++ { element := mv.r.builder.CreateExtractValue(llvmValue, i, "") @@ -231,6 +231,7 @@ func (mv *memoryView) markExternal(llvmValue llvm.Value, mark uint8) error { return err } } + case llvm.MetadataTypeKind: default: return errors.New("interp: unknown type kind in markExternalValue") }