summaryrefslogtreecommitdiff
path: root/mono/tests/thread_static_gc_layout.cs
blob: d0ea8b4e3440fae32461ab13dc927648cce95328 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
using System;

public struct Sandwich
{
	public IntPtr a;
	public object b;
	public IntPtr c;
	public IntPtr d;
}

class Driver {
	[ThreadStatic]
	static Sandwich blt;
	// const long initial_val = 0x0100000001L;
	const int initial_val = 1;

	static int Main ()
	{
		blt.a = (IntPtr)initial_val;
		blt.b = new object ();
		blt.c = (IntPtr)initial_val;
		blt.d = (IntPtr)initial_val;
		GC.Collect ();
		return (blt.a == blt.c && blt.c == blt.d && blt.a == (IntPtr)initial_val) ? 0 : -1;
	}
}