Module.PredefinedAttributes.CompilerGenerated.EmitAttribute (TypeBuilder);
#if STATIC
- if (Kind == MemberKind.Struct && HasInstanceField) {
+ if (Kind == MemberKind.Struct && !HasStructLayout && HasInstanceField) {
TypeBuilder.__SetLayout (0, 0);
}
using System;
+using System.Runtime.InteropServices;
public struct MyStruct
{
public int X { get; set; }
}
+[StructLayout (LayoutKind.Sequential, Pack = 1)]
+public struct MyStruct2
+{
+ public IntPtr handle;
+ public uint type_reference;
+}
+
class X
{
public static int Main ()
if (s.StructLayoutAttribute.Size != 0)
return 1;
+ var s2 = typeof (MyStruct2);
+
+ if (s2.StructLayoutAttribute.Size != 0)
+ return 2;
+
+ if (s2.StructLayoutAttribute.Pack != 1)
+ return 3;
+
return 0;
}
}
\ No newline at end of file