Mercurial > projects > ldc
annotate tests/mini/foreach5.d @ 969:fe2d9bb7078d
Add some extra debug output that's useful in diagnosing inline assembler bugs.
author | Frits van Bommel <fvbommel wxs.nl> |
---|---|
date | Mon, 16 Feb 2009 23:56:56 +0100 |
parents | 1bb99290e03a |
children |
rev | line source |
---|---|
51
61bc1b4ad3c4
[svn r55] Foreach was always generating code as if the value variable was 'ref'
lindquist
parents:
diff
changeset
|
1 module foreach5; |
270
d9d5d59873d8
[svn r291] Fixed a bunch of the old Phobos tests to work with Tango.
lindquist
parents:
51
diff
changeset
|
2 extern(C) int printf(char*, ...); |
51
61bc1b4ad3c4
[svn r55] Foreach was always generating code as if the value variable was 'ref'
lindquist
parents:
diff
changeset
|
3 void main() |
61bc1b4ad3c4
[svn r55] Foreach was always generating code as if the value variable was 'ref'
lindquist
parents:
diff
changeset
|
4 { |
61bc1b4ad3c4
[svn r55] Foreach was always generating code as if the value variable was 'ref'
lindquist
parents:
diff
changeset
|
5 int[3] arr = [1,2,3]; |
61bc1b4ad3c4
[svn r55] Foreach was always generating code as if the value variable was 'ref'
lindquist
parents:
diff
changeset
|
6 |
61bc1b4ad3c4
[svn r55] Foreach was always generating code as if the value variable was 'ref'
lindquist
parents:
diff
changeset
|
7 foreach(v;arr) { |
61bc1b4ad3c4
[svn r55] Foreach was always generating code as if the value variable was 'ref'
lindquist
parents:
diff
changeset
|
8 v++; |
61bc1b4ad3c4
[svn r55] Foreach was always generating code as if the value variable was 'ref'
lindquist
parents:
diff
changeset
|
9 } |
61bc1b4ad3c4
[svn r55] Foreach was always generating code as if the value variable was 'ref'
lindquist
parents:
diff
changeset
|
10 |
61bc1b4ad3c4
[svn r55] Foreach was always generating code as if the value variable was 'ref'
lindquist
parents:
diff
changeset
|
11 printf("%d\n", arr[0]); |
61bc1b4ad3c4
[svn r55] Foreach was always generating code as if the value variable was 'ref'
lindquist
parents:
diff
changeset
|
12 assert(arr[0] == 1); |
61bc1b4ad3c4
[svn r55] Foreach was always generating code as if the value variable was 'ref'
lindquist
parents:
diff
changeset
|
13 assert(arr[1] == 2); |
61bc1b4ad3c4
[svn r55] Foreach was always generating code as if the value variable was 'ref'
lindquist
parents:
diff
changeset
|
14 assert(arr[2] == 3); |
61bc1b4ad3c4
[svn r55] Foreach was always generating code as if the value variable was 'ref'
lindquist
parents:
diff
changeset
|
15 |
61bc1b4ad3c4
[svn r55] Foreach was always generating code as if the value variable was 'ref'
lindquist
parents:
diff
changeset
|
16 foreach(ref v;arr) { |
61bc1b4ad3c4
[svn r55] Foreach was always generating code as if the value variable was 'ref'
lindquist
parents:
diff
changeset
|
17 v++; |
61bc1b4ad3c4
[svn r55] Foreach was always generating code as if the value variable was 'ref'
lindquist
parents:
diff
changeset
|
18 } |
61bc1b4ad3c4
[svn r55] Foreach was always generating code as if the value variable was 'ref'
lindquist
parents:
diff
changeset
|
19 |
61bc1b4ad3c4
[svn r55] Foreach was always generating code as if the value variable was 'ref'
lindquist
parents:
diff
changeset
|
20 printf("%d\n", arr[0]); |
61bc1b4ad3c4
[svn r55] Foreach was always generating code as if the value variable was 'ref'
lindquist
parents:
diff
changeset
|
21 assert(arr[0] == 2); |
61bc1b4ad3c4
[svn r55] Foreach was always generating code as if the value variable was 'ref'
lindquist
parents:
diff
changeset
|
22 assert(arr[1] == 3); |
61bc1b4ad3c4
[svn r55] Foreach was always generating code as if the value variable was 'ref'
lindquist
parents:
diff
changeset
|
23 assert(arr[2] == 4); |
61bc1b4ad3c4
[svn r55] Foreach was always generating code as if the value variable was 'ref'
lindquist
parents:
diff
changeset
|
24 } |