reject programs that import symbols after using them
[voodoo-lang.git] / test / many-locals.voo
blobe869d1067192193e8d1db49fc96d1a1273f98411
1 #### Test using many locals
3 section data
5 argc_format: string "argc: %d\n\x00"
6 format: string "many_locals %d: %d\n\x00"
9 section functions
10 import printf
11 export main
13 align
14 many_locals:
15 function x
16     let a x
17     let b add x 1
18     let c add x 2
19     let d add x 3
20     let e add x 4
21     let f add x 5
22     let g add x 6
23     let h add x 7
24     let i add x 8
25     let j add x 9
26     let k add x 10
27     let l add x 11
28     let m add x 12
29     let n add x 13
30     let o add x 14
31     let p add x 15
32     let q add x 16
33     let r add x 17
34     let s add x 18
35     let t add x 19
37     let sum add a b
38     set sum add sum c
39     set sum add sum d
40     set sum add sum e
41     set sum add sum f
42     set sum add sum g
43     set sum add sum h
44     set sum add sum i
45     set sum add sum j
46     set sum add sum k
47     set sum add sum l
48     set sum add sum m
49     set sum add sum n
50     set sum add sum o
51     set sum add sum p
52     set sum add sum q
53     set sum add sum r
54     set sum add sum s
55     set sum add sum t
57     return sum
58 end function
60 align
61 main:
62 function argc argv
63     call printf argc_format argc
64     let x call many_locals 1
65     call printf format 1 x
66     call printf argc_format argc
68     set x call many_locals -20
69     call printf format -20 x
70     call printf argc_format argc
72     return 0
73 end function