1 /*
2 PERMUTE_ARGS:
3 RUN_OUTPUT:
4 ---
5 Success
6 ---
7 */
8 
9 module testgc2;
10 
11 import core.stdc.stdio;
12 import core.exception : OutOfMemoryError;
13 
14 /*******************************************/
15 
16 __gshared ulong counter;
17 
18 void test1()
19 {
20     try
21     {
22         long[] l = new long[ptrdiff_t.max];
23         counter += l.capacity; // Make sure l is not optimized out.
24         assert(0);
25     }
26     catch (OutOfMemoryError o)
27     {
28     }
29 
30     assert(counter == 0);
31 
32     try
33     {
34         byte[] b = new byte[size_t.max / 3];
35         counter += b.capacity; // Make sure b is not optimized out.
36         version (Windows)
37             assert(0);
38     }
39     catch (OutOfMemoryError o)
40     {
41     }
42 
43     assert(counter >= 0);
44 }
45 
46 /*******************************************/
47 
48 void main()
49 {
50     test1();
51 
52     printf("Success\n");
53 }