compiler/tests/fixtures/runtime/library-shared-region/main.ldn
1import core/mem
2import core/region
3
4exercise: () -> (ok: bool) ! mem.out_of_memory =
5 ok = false
6 mut backing: [64]u8 = zeroed
7 mut inner := mem.arena_over_unchecked(addr backing[0], 64)
8 mut records: [1]region.allocation = zeroed
9 mut state := region.over(addr inner, records[0..<1])
10 address := try mem.allocate(state, usize(4), usize(1))
11 address.val = 42
12 return when address.val <> 42
13 _ = mem.allocate(state, usize(4), usize(1)) else (problem)
14 _ = problem
15 mem.free(state, address, usize(4))
16 ok = true
17 return
18 end
19end exercise
20
21public main: () -> (code: i32) =
22 code = 1
23 ok := exercise() else false
24 if ok then
25 code = 42
26 end if
27end main