annotate tests/mini/foreach10.d @ 1610:4f63d530861f

Merge DMD r276: bugzilla 2229 ICE(template.c) instantiating an invalid... bugzilla 2229 ICE(template.c) instantiating an invalid variadic template with more than one argument. --- dmd/template.c | 7 ++++++- 1 files changed, 6 insertions(+), 1 deletions(-)
author Leandro Lucarella <llucax@gmail.com>
date Wed, 06 Jan 2010 15:18:21 -0300
parents 8baf611f0009
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1185
8baf611f0009 Fix nested references to 'ref' foreach variables.
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
1 module foreach10;
8baf611f0009 Fix nested references to 'ref' foreach variables.
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
2
8baf611f0009 Fix nested references to 'ref' foreach variables.
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
3 extern(C) int printf(char*, ...);
8baf611f0009 Fix nested references to 'ref' foreach variables.
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
4
8baf611f0009 Fix nested references to 'ref' foreach variables.
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
5 void main() {
8baf611f0009 Fix nested references to 'ref' foreach variables.
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
6 char* last = null;
8baf611f0009 Fix nested references to 'ref' foreach variables.
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
7 printf("The addresses should increment:\n");
8baf611f0009 Fix nested references to 'ref' foreach variables.
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
8 foreach (ref c; "bar") {
8baf611f0009 Fix nested references to 'ref' foreach variables.
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
9 auto a = {
8baf611f0009 Fix nested references to 'ref' foreach variables.
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
10 printf("%x '%c'\n", c, c);
8baf611f0009 Fix nested references to 'ref' foreach variables.
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
11 return &c;
8baf611f0009 Fix nested references to 'ref' foreach variables.
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
12 };
8baf611f0009 Fix nested references to 'ref' foreach variables.
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
13 auto nw = a();
8baf611f0009 Fix nested references to 'ref' foreach variables.
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
14 printf("ptr = %p\n", nw);
8baf611f0009 Fix nested references to 'ref' foreach variables.
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
15 if (last != null)
8baf611f0009 Fix nested references to 'ref' foreach variables.
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
16 assert(nw == last+1);
8baf611f0009 Fix nested references to 'ref' foreach variables.
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
17 last = nw;
8baf611f0009 Fix nested references to 'ref' foreach variables.
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
18 }
8baf611f0009 Fix nested references to 'ref' foreach variables.
Frits van Bommel <fvbommel wxs.nl>
parents:
diff changeset
19 }