374
|
1 // $HeadURL$
|
|
2 // $Date$
|
|
3 // $Author$
|
|
4
|
|
5 // @author@ Thomas Kuehne <thomas-dloop@kuehne.thisisspam.cn>
|
|
6 // @date@ 2004-10-22
|
|
7 // @uri@ news:clbr09$uc6$1@digitaldaemon.com
|
1487
|
8 // @uri@ http://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=digitalmars.D.bugs&artnum=2140
|
374
|
9
|
|
10 // invariants for Unions allowed since dmd-0.119
|
|
11
|
736
|
12 // __DSTRESS_TORTURE_BLOCK__ -release
|
|
13
|
374
|
14 module dstress.run.invariant_06;
|
|
15
|
|
16 int status;
|
|
17
|
|
18 union MyUnion{
|
|
19 int i;
|
|
20
|
|
21 void test(){
|
|
22 i++;
|
|
23 }
|
|
24
|
1559
|
25 invariant(){
|
374
|
26 status++;
|
|
27 }
|
|
28 }
|
|
29
|
|
30 int main(){
|
|
31 MyUnion u;
|
1559
|
32 if(0 != status){
|
|
33 assert(0);
|
|
34 }
|
374
|
35 u.test();
|
1559
|
36 if(1 != status){
|
|
37 assert(0);
|
|
38 }
|
374
|
39 u.i=2;
|
1559
|
40 if(2 != status){
|
|
41 assert(0);
|
|
42 }
|
374
|
43 assert(u);
|
1559
|
44 if(3 != status){
|
|
45 assert(0);
|
|
46 }
|
374
|
47 return 0;
|
|
48 }
|