Merge pull request #4327 from vkargov/vk-abcremedy
[mono.git] / mcs / tests / test-614.cs
1 using System;
2
3 class C {
4
5         public static int       value;
6                 
7         static internal void And ()
8         {       
9                 if ((false & (value++ == 1)) != (false & (++value == 1)))
10                         return;
11                 
12                 if (((value++ == 1) & false) != ((++value == 1) & false))
13                         return;
14                 
15                 if ((false && (value++ == 1)) != (false && (++value == 1)))
16                         return;
17                 
18                 if (((value++ == 1) && false) != ((++value == 1) && false))
19                         return;
20         }
21
22         static internal void Or ()
23         {       
24                 if ((false | (value++ == 1)) != (false | (++value == 1)))
25                         return;
26                 
27                 if (((value++ == 1) | false) != ((++value == 1) | false))
28                         return;
29                 
30                 if ((true || (value++ == 1)) != (true || (++value == 1)))
31                         return;
32                 
33                 if (((value++ == 1) || true) != ((++value == 1) || true))
34                         return;
35         }
36         
37         public static int Main ()
38         {
39                 value = 0;
40                 And ();
41                 Console.WriteLine (value);
42                 if (value != 6)
43                         return 1;
44                 
45                 value = 0;
46                 Or ();
47                 Console.WriteLine (value);
48                 if (value != 6)
49                         return 2;
50                         
51                 return 0;
52         }
53 }