aboutsummaryrefslogtreecommitdiff
path: root/tests/programs/o3scopes.zc
blob: 4dbf68c717946ea1e6f674cc8d1129f430d03331 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// 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 = new(fixed []int, 4);
	for (int i = 0; i < 4; i++) f[i] = 10 * i;
	put_n(scopes(f)); put_c(10);
	free(d*f);
	return 0;
}