// Compiler options: -unsafe

using System;

namespace Bug
{
	unsafe struct Demo
	{
		fixed bool test [4];
	
		bool Fixed ()
		{
			fixed (bool* data_ptr = test)
			{
				return true;
			}
		}
		
		static bool Foo (int [] data)
		{
			fixed (int* data_ptr = data)
			{
				return data_ptr == null ? true : false;
			}
		}
		
		public static int Main ()
		{
			if (!Foo (null))
				return 1;
			
			if (!Foo (new int [0]))
				return 2;
			
			if (!new Demo().Fixed ())
				return 3;
			
			Console.WriteLine ("OK");
			return 0;
		}
	}
}