blob: a23a622b1069ab6d1820808653d5eeb33cf81f62 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
namespace;
include rt;
// registers reused by scopes that never overlap, and a fixed array read through its cached items and length
o3 int scopes(fixed int[?] f) {
int total = 0;
for (int a = 0; a < 3; a++) { int x = a * 2; total += x; }
for (int b = 0; b < 3; b++) { int y = b * 3; total += y; }
for (int c = 0; c < 3; c++) { int z = c * 5; total += z; }
for (int e = 0; e < len(f); e++) { int w = f[e]; total += w; }
for (int g = 0; g < 4; g++) { int h = g + 1, q = h * h, r = q - 1; total += r; }
return total;
}
fn main() {
fixed int[?] f = rt.new(fixed int[?], 4);
for (int i = 0; i < 4; i++) f[i] = 10 * i;
rt.put_n(scopes(f)); rt.put_c(10);
rt.free(d*f);
return 0;
}
|