Improved version
[mono.git] / mcs / tests / unsafe-2.cs
1 //
2 // This test excercises stackalloc, some pointer arithmetic,
3 // and dereferences
4 //
5 using System;
6 unsafe class X {
7         static int Main ()
8         {
9                 char *ptr = stackalloc char [10];
10                 char *cptr = ptr;
11                 int i;
12                 long l = 0;
13                 ulong ul = 0;
14                 byte b = 0;
15                 
16                 for (i = 0; i < 10; i++)
17                         ptr [i] = (char) (i + 10);
18
19                 for (i = 0; i < 10; i++){
20                         if (*ptr != (char) (i + 10))
21                                 return 200 + i;
22                         ptr++;
23                 }
24
25
26                 // Now test index access with longs
27                 if (cptr [l] != 10){
28                         return 1;
29                 }
30                 if (cptr [ul] != 10)
31                         return 2;
32                 if (cptr [b] != 10)
33                         return 3;
34                 
35                 Console.WriteLine ("Ok");
36                 return 0;
37         }
38 }       
39
40