// // test-181.cs: Test whenever mcs correctly handles the MethodImplAttributes // custom attribute. // using System; using System.Reflection; using System.Runtime.CompilerServices; class Test { [MethodImplAttribute(MethodImplOptions.Synchronized)] public void test () { } [MethodImplAttribute((short)MethodImplOptions.Synchronized)] public void test2 () { } [MethodImplAttribute((byte)32)] public void test3 () { } [MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.NoOptimization)] public void test4 () { } public static int Main () { MethodImplAttributes iflags; iflags = typeof (Test).GetMethod ("test").GetMethodImplementationFlags (); if ((iflags & MethodImplAttributes.Synchronized) == 0) return 1; iflags = typeof (Test).GetMethod ("test2").GetMethodImplementationFlags (); if ((iflags & MethodImplAttributes.Synchronized) == 0) return 2; iflags = typeof (Test).GetMethod ("test3").GetMethodImplementationFlags (); if ((iflags & MethodImplAttributes.Synchronized) == 0) return 3; iflags = typeof (Test).GetMethod ("test3").GetMethodImplementationFlags (); if ((iflags & MethodImplAttributes.Synchronized) == 0) return 4; return 0; } }