Initial set of Ward sgen annotations (#5705)
[mono.git] / mono / tests / bug-340662_bug.cs
1 using System;
2 using System.Reflection;
3 using System.Runtime.InteropServices;
4 using System.Runtime.CompilerServices;
5
6
7 class Program
8 {
9         [DllImport("foo.dll", CallingConvention=CallingConvention.Winapi)]
10         public static extern void pf1(string format, __arglist);
11
12         [DllImport("foo.dll", CallingConvention=CallingConvention.Cdecl)]
13         public static extern void pf2(string format, __arglist);
14  
15         [DllImport("foo.dll", CallingConvention=CallingConvention.StdCall)]
16         public static extern void pf3(string format, __arglist);
17
18         [DllImport("foo.dll", CallingConvention=CallingConvention.ThisCall)]
19         public static extern void pf4(string format, __arglist);
20
21         [DllImport("foo.dll", CallingConvention=CallingConvention.FastCall)]
22         public static extern void pf5(string format, __arglist);
23
24         [DllImport("foo.dll", CallingConvention=CallingConvention.StdCall)]
25         public static extern void mixed1(string format);
26
27         static int Main()
28         {
29                 for (int i = 1; i < 6; ++i) {
30                         if (typeof (Program).GetMethod ("pf"+i).CallingConvention != CallingConventions.VarArgs) {
31                                 Console.WriteLine ("pf{0} {1} != VarArg", i, typeof (Program).GetMethod ("pf"+i).CallingConvention);
32                                 return 1;
33                         }
34                 }
35
36                 if (typeof (Program).GetMethod ("mixed1").CallingConvention != CallingConventions.Standard) {
37                         Console.WriteLine ("mixed1 {0} != Standard", typeof (Program).GetMethod ("mixed1").CallingConvention);
38                         return 1;
39                 }
40
41         Console.WriteLine ("OK");
42         return 0;
43     }
44 }