v/vlib/v/tests/valgrind/1.vv

28 lines
557 B
V

import os
fn return_array(array_arg []string) []int { // array argument must not be freed
s := [1, 2, 3] // escaping array must not be freed
return s
}
fn foo() {
nums := [1, 2, 3] // local array must be freed
println(nums)
nums_copy := nums // array assignments call .clone()
println(nums_copy)
name := 'Peter' // string literals mustn't be freed
str_inter := 'hello, $name' // concatenated strings must be freed
//nums.free() // this should result in a double free and a CI error
}
fn main() {
println('start')
foo()
println('end')
}