1 | // Copyright (c) Microsoft. All rights reserved. |
2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. |
3 | |
4 | #include <stdio.h> |
5 | #include "native.h" |
6 | |
7 | |
8 | MCC_API VType5 WINAPI sum( |
9 | unsigned __int64 c1, VType5 v1, |
10 | double c2, VType5 v2, |
11 | float c3, VType5 v3, |
12 | int c4, VType5 v4, |
13 | unsigned short c5, VType5 v5, |
14 | unsigned int c6, VType5 v6, |
15 | float c7, VType5 v7, |
16 | __int64 c8, VType5 v8, |
17 | float c9, VType5 v9, |
18 | double c10, VType5 v10, |
19 | float c11, VType5 v11, |
20 | short c12, VType5 v12) { |
21 | |
22 | VType5 res; |
23 | |
24 | // zero-out res |
25 | res.reset(); |
26 | |
27 | // check values of parameters c1 thru c12 |
28 | int nfail = 12; |
29 | if (c1 != (unsigned __int64)1) { |
30 | printf("ERROR! Parameter c1 => expected %d, actual %d.\n" , 1, (int)c1); |
31 | } |
32 | else { |
33 | nfail--; |
34 | } |
35 | if (c2 != (double)2.0) { |
36 | printf("ERROR! Parameter c2 => expected %d, actual %d.\n" , 2, (int)c2); |
37 | } |
38 | else { |
39 | nfail--; |
40 | } |
41 | if (c3 != (float)3.0) { |
42 | printf("ERROR! Parameter c3 => expected %d, actual %d.\n" , 3, (int)c3); |
43 | } |
44 | else { |
45 | nfail--; |
46 | } |
47 | if (c4 != (int)4) { |
48 | printf("ERROR! Parameter c4 => expected %d, actual %d.\n" , 4, (int)c4); |
49 | } |
50 | else { |
51 | nfail--; |
52 | } |
53 | if (c5 != (unsigned short)5) { |
54 | printf("ERROR! Parameter c5 => expected %d, actual %d.\n" , 5, (int)c5); |
55 | } |
56 | else { |
57 | nfail--; |
58 | } |
59 | if (c6 != (unsigned int)6) { |
60 | printf("ERROR! Parameter c6 => expected %d, actual %d.\n" , 6, (int)c6); |
61 | } |
62 | else { |
63 | nfail--; |
64 | } |
65 | if (c7 != (float)7.0) { |
66 | printf("ERROR! Parameter c7 => expected %d, actual %d.\n" , 7, (int)c7); |
67 | } |
68 | else { |
69 | nfail--; |
70 | } |
71 | if (c8 != (__int64)8) { |
72 | printf("ERROR! Parameter c8 => expected %d, actual %d.\n" , 8, (int)c8); |
73 | } |
74 | else { |
75 | nfail--; |
76 | } |
77 | if (c9 != (float)9.0) { |
78 | printf("ERROR! Parameter c9 => expected %d, actual %d.\n" , 9, (int)c9); |
79 | } |
80 | else { |
81 | nfail--; |
82 | } |
83 | if (c10 != (double)10.0) { |
84 | printf("ERROR! Parameter c10 => expected %d, actual %d.\n" , 10, (int)c10); |
85 | } |
86 | else { |
87 | nfail--; |
88 | } |
89 | if (c11 != (float)11.0) { |
90 | printf("ERROR! Parameter c11 => expected %d, actual %d.\n" , 11, (int)c11); |
91 | } |
92 | else { |
93 | nfail--; |
94 | } |
95 | if (c12 != (short)12) { |
96 | printf("ERROR! Parameter c12 => expected %d, actual %d.\n" , 12, (int)c12); |
97 | } |
98 | else { |
99 | nfail--; |
100 | } |
101 | |
102 | if (nfail == 0) { |
103 | res.add(v1); |
104 | res.add(v2); |
105 | res.add(v3); |
106 | res.add(v4); |
107 | res.add(v5); |
108 | res.add(v6); |
109 | res.add(v7); |
110 | res.add(v8); |
111 | res.add(v9); |
112 | res.add(v10); |
113 | res.add(v11); |
114 | res.add(v12); |
115 | } |
116 | |
117 | return res; |
118 | } |
119 | |