Merge pull request #495 from nicolas-raoul/fix-for-issue2907-with-no-formatting-changes
[mono.git] / mcs / tests / gtest-353.cs
index c122cc1fae3c3631573bf453f125ed3743d02b4c..c36c8d58e9c20bc88a0dd4982f90531e048b6407 100644 (file)
@@ -1,46 +1,27 @@
-// Compiler options: -unsafe
-
 using System;
-using System.Runtime.InteropServices;
 
-namespace Bug
+class A<D1, D2, D3>
 {
-       [StructLayout (LayoutKind.Sequential, Pack = 1)]
-       public unsafe struct xxx
+       public virtual void Foo<T> () where T : D2
        {
-               internal fixed byte zzz [5];
        }
+}
+
+class B<DD2> : A<int, DD2, short>
+{
+}
 
-       internal class RedSkyTimeCode
+class C : B<string>
+{
+       public override void Foo<T> ()
        {
-               public unsafe void CopyTo (xxx* dest)
-               {
-                       fixed (ulong* p = &_rep) {
-                               byte* pb = (byte*) p;
-                               dest->zzz [0] = pb [0];
-                               dest->zzz [1] = pb [1];
-                               dest->zzz [2] = pb [2];
-                               dest->zzz [3] = pb [3];
-                               dest->zzz [4] = pb [4];
-                       }
-               }
-               
-               public static unsafe void Convert (xxx* src, ulong* dest)
-               {
-                       byte* pb = (byte*) dest;
-                       *dest = 0L;
-                       pb [0] = src->zzz [0];
-                       pb [1] = src->zzz [1];
-                       pb [2] = src->zzz [2];
-                       pb [3] = src->zzz [3];
-                       pb [4] = src->zzz [4];
-               }
-               
-               private ulong _rep;
-               
-               public static void Main ()
-               {
-               }
        }
 }
 
+public class Program
+{
+       public static void Main ()
+       {
+               new C ().Foo<string> ();
+       }
+}