1
0
mirror of https://github.com/vlang/v.git synced 2023-08-10 21:13:21 +03:00

builtin: Fix undefined behaviour when allocating empty structs (#4088)

This commit is contained in:
radare
2020-03-21 12:24:34 +01:00
committed by GitHub
parent 7b1b647832
commit cc75fe4fe5
2 changed files with 14 additions and 2 deletions

View File

@ -1,10 +1,10 @@
struct A{
struct A {
mut:
val int
nums []int
}
struct B{
struct B {
mut:
a A
}
@ -26,6 +26,9 @@ struct Foo {
@type string
}
struct Empty {
}
//We need to make sure that this compiles with all the reserved names.
struct ReservedKeywords {
delete int
@ -55,6 +58,12 @@ struct ReservedKeywords {
while int
}
fn test_empty_struct() {
d := &Empty{}
println(d) // != voidptr(0)
println(sizeof(Empty)) // == 0
}
fn test_struct_levels() {
mut c := C{}
assert c.nums.len == 0