diff options
Diffstat (limited to 'mcs/tests/test-133.cs')
-rwxr-xr-x | mcs/tests/test-133.cs | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/mcs/tests/test-133.cs b/mcs/tests/test-133.cs new file mode 100755 index 00000000000..1e27fc40631 --- /dev/null +++ b/mcs/tests/test-133.cs @@ -0,0 +1,36 @@ +using System; + +public struct S { + public int a, b; +} + +class T { + enum OpCode : ushort { False } + enum OpFlags : ushort { None } + static void DecodeOp (ushort word, out OpCode op, out OpFlags flags) { + op = (OpCode)(word & 0x00ff); + flags = (OpFlags)(word & 0xff00); + } + static void get_struct (out S s) { + S ss; + ss.a = 1; + ss.b = 2; + s = ss; + } + static int Main() { + OpCode op; + OpFlags flags; + S s; + DecodeOp ((ushort)0x0203, out op, out flags); + if (op != (OpCode)0x3) + return 1; + if (flags != (OpFlags)0x200) + return 2; + get_struct (out s); + if (s.a != 1) + return 3; + if (s.b != 2) + return 4; + return 0; + } +} |