]>
Commit | Line | Data |
---|---|---|
5fee5ec3 IB |
1 | /* |
2 | PERMUTE_ARGS: | |
3 | RUN_OUTPUT: | |
4 | --- | |
5 | count = 3 | |
6 | --- | |
7 | */ | |
b4c522fa | 8 | |
5fee5ec3 | 9 | // https://issues.dlang.org/show_bug.cgi?id=2311 |
b4c522fa | 10 | |
5fee5ec3 IB |
11 | extern(C) int printf(const char*, ...); |
12 | ||
13 | __gshared ulong count; | |
14 | ||
15 | shared static ~this() | |
b4c522fa | 16 | { |
5fee5ec3 IB |
17 | printf("count = %llu\n", count); |
18 | assert(count == 3); | |
b4c522fa IB |
19 | } |
20 | ||
5fee5ec3 | 21 | template X(uint idx) |
b4c522fa | 22 | { |
5fee5ec3 IB |
23 | static ~this() |
24 | { | |
25 | assert(count == idx); | |
26 | ++count; | |
27 | } | |
b4c522fa IB |
28 | } |
29 | ||
5fee5ec3 | 30 | void main() |
b4c522fa | 31 | { |
5fee5ec3 IB |
32 | // Instantiate module destructors in reverse order |
33 | alias x = X!(2); | |
34 | alias y = X!(1); | |
35 | alias z = X!(0); | |
b4c522fa | 36 | } |