1 enum e
{ OK
, KO
= -1 };
4 static int test(int i
, long l
, long long ll
, enum e e
, bool b
, void *p
)
9 rc
+= __builtin_add_overflow(i
, i
, &i
);
10 rc
+= __builtin_add_overflow(l
, i
, &i
);
11 rc
+= __builtin_add_overflow(i
, l
, &i
);
12 rc
+= __builtin_add_overflow(i
, i
, &l
);
13 rc
+= __builtin_add_overflow(ll
, i
, &i
);
14 rc
+= __builtin_add_overflow(i
, ll
, &i
);
15 rc
+= __builtin_add_overflow(i
, i
, &ll
);
17 rc
+= __builtin_add_overflow_p(i
, i
, i
);
18 rc
+= __builtin_add_overflow_p(l
, i
, i
);
19 rc
+= __builtin_add_overflow_p(i
, l
, i
);
20 rc
+= __builtin_add_overflow_p(i
, i
, l
);
21 rc
+= __builtin_add_overflow_p(ll
, i
, i
);
22 rc
+= __builtin_add_overflow_p(i
, ll
, i
);
23 rc
+= __builtin_add_overflow_p(i
, i
, ll
);
25 rc
+= __builtin_sub_overflow(i
, i
, &i
);
26 rc
+= __builtin_sub_overflow(l
, i
, &i
);
27 rc
+= __builtin_sub_overflow(i
, l
, &i
);
28 rc
+= __builtin_sub_overflow(i
, i
, &l
);
29 rc
+= __builtin_sub_overflow(ll
, i
, &i
);
30 rc
+= __builtin_sub_overflow(i
, ll
, &i
);
31 rc
+= __builtin_sub_overflow(i
, i
, &ll
);
33 rc
+= __builtin_sub_overflow_p(i
, i
, i
);
34 rc
+= __builtin_sub_overflow_p(l
, i
, i
);
35 rc
+= __builtin_sub_overflow_p(i
, l
, i
);
36 rc
+= __builtin_sub_overflow_p(i
, i
, l
);
37 rc
+= __builtin_sub_overflow_p(ll
, i
, i
);
38 rc
+= __builtin_sub_overflow_p(i
, ll
, i
);
39 rc
+= __builtin_sub_overflow_p(i
, i
, ll
);
41 rc
+= __builtin_mul_overflow(i
, i
, &i
);
42 rc
+= __builtin_mul_overflow(l
, i
, &i
);
43 rc
+= __builtin_mul_overflow(i
, l
, &i
);
44 rc
+= __builtin_mul_overflow(i
, i
, &l
);
45 rc
+= __builtin_mul_overflow(ll
, i
, &i
);
46 rc
+= __builtin_mul_overflow(i
, ll
, &i
);
47 rc
+= __builtin_mul_overflow(i
, i
, &ll
);
49 rc
+= __builtin_mul_overflow_p(i
, i
, i
);
50 rc
+= __builtin_mul_overflow_p(l
, i
, i
);
51 rc
+= __builtin_mul_overflow_p(i
, l
, i
);
52 rc
+= __builtin_mul_overflow_p(i
, i
, l
);
53 rc
+= __builtin_mul_overflow_p(ll
, i
, i
);
54 rc
+= __builtin_mul_overflow_p(i
, ll
, i
);
55 rc
+= __builtin_mul_overflow_p(i
, i
, ll
);
58 rc
+= __builtin_add_overflow();
59 rc
+= __builtin_add_overflow(i
);
60 rc
+= __builtin_add_overflow(i
, i
);
61 rc
+= __builtin_add_overflow(i
, i
, &i
, i
);
62 rc
+= __builtin_add_overflow(e
, i
, &i
);
63 rc
+= __builtin_add_overflow(i
, e
, &i
);
64 rc
+= __builtin_add_overflow(i
, i
, &e
);
65 rc
+= __builtin_add_overflow(b
, i
, &i
);
66 rc
+= __builtin_add_overflow(i
, b
, &i
);
67 rc
+= __builtin_add_overflow(i
, i
, &b
);
68 rc
+= __builtin_add_overflow(i
, i
, p
);
70 rc
+= __builtin_add_overflow_p();
71 rc
+= __builtin_add_overflow_p(i
);
72 rc
+= __builtin_add_overflow_p(i
, i
);
73 rc
+= __builtin_add_overflow_p(i
, i
, i
, i
);
74 rc
+= __builtin_add_overflow_p(e
, i
, i
);
75 rc
+= __builtin_add_overflow_p(i
, e
, i
);
76 rc
+= __builtin_add_overflow_p(i
, i
, e
);
77 rc
+= __builtin_add_overflow_p(b
, i
, i
);
78 rc
+= __builtin_add_overflow_p(i
, b
, i
);
79 rc
+= __builtin_add_overflow_p(i
, i
, b
);
80 rc
+= __builtin_add_overflow_p(i
, i
, p
);
82 rc
+= __builtin_sub_overflow();
83 rc
+= __builtin_sub_overflow(i
);
84 rc
+= __builtin_sub_overflow(i
, i
);
85 rc
+= __builtin_sub_overflow(i
, i
, &i
, i
);
86 rc
+= __builtin_sub_overflow(e
, i
, &i
);
87 rc
+= __builtin_sub_overflow(i
, e
, &i
);
88 rc
+= __builtin_sub_overflow(i
, i
, &e
);
89 rc
+= __builtin_sub_overflow(b
, i
, &i
);
90 rc
+= __builtin_sub_overflow(i
, b
, &i
);
91 rc
+= __builtin_sub_overflow(i
, i
, &b
);
92 rc
+= __builtin_sub_overflow(i
, i
, p
);
94 rc
+= __builtin_sub_overflow_p();
95 rc
+= __builtin_sub_overflow_p(i
);
96 rc
+= __builtin_sub_overflow_p(i
, i
);
97 rc
+= __builtin_sub_overflow_p(i
, i
, i
, i
);
98 rc
+= __builtin_sub_overflow_p(e
, i
, i
);
99 rc
+= __builtin_sub_overflow_p(i
, e
, i
);
100 rc
+= __builtin_sub_overflow_p(i
, i
, e
);
101 rc
+= __builtin_sub_overflow_p(b
, i
, i
);
102 rc
+= __builtin_sub_overflow_p(i
, b
, i
);
103 rc
+= __builtin_sub_overflow_p(i
, i
, b
);
104 rc
+= __builtin_sub_overflow_p(i
, i
, p
);
106 rc
+= __builtin_mul_overflow();
107 rc
+= __builtin_mul_overflow(i
);
108 rc
+= __builtin_mul_overflow(i
, i
);
109 rc
+= __builtin_mul_overflow(i
, i
, &i
, i
);
110 rc
+= __builtin_mul_overflow(e
, i
, &i
);
111 rc
+= __builtin_mul_overflow(i
, e
, &i
);
112 rc
+= __builtin_mul_overflow(i
, i
, &e
);
113 rc
+= __builtin_mul_overflow(b
, i
, &i
);
114 rc
+= __builtin_mul_overflow(i
, b
, &i
);
115 rc
+= __builtin_mul_overflow(i
, i
, &b
);
116 rc
+= __builtin_mul_overflow(i
, i
, p
);
118 rc
+= __builtin_mul_overflow_p();
119 rc
+= __builtin_mul_overflow_p(i
);
120 rc
+= __builtin_mul_overflow_p(i
, i
);
121 rc
+= __builtin_mul_overflow_p(i
, i
, i
, i
);
122 rc
+= __builtin_mul_overflow_p(e
, i
, i
);
123 rc
+= __builtin_mul_overflow_p(i
, e
, i
);
124 rc
+= __builtin_mul_overflow_p(i
, i
, e
);
125 rc
+= __builtin_mul_overflow_p(b
, i
, i
);
126 rc
+= __builtin_mul_overflow_p(i
, b
, i
);
127 rc
+= __builtin_mul_overflow_p(i
, i
, b
);
128 rc
+= __builtin_mul_overflow_p(i
, i
, p
);
134 * check-name: builtin-overflow
137 builtin-overflow.c:58:37: error: not enough arguments for __builtin_add_overflow
138 builtin-overflow.c:59:37: error: not enough arguments for __builtin_add_overflow
139 builtin-overflow.c:60:37: error: not enough arguments for __builtin_add_overflow
140 builtin-overflow.c:61:37: error: too many arguments for __builtin_add_overflow
141 builtin-overflow.c:62:38: error: invalid type for argument 1:
142 builtin-overflow.c:62:38: int enum e e
143 builtin-overflow.c:63:41: error: invalid type for argument 2:
144 builtin-overflow.c:63:41: int enum e e
145 builtin-overflow.c:64:45: error: invalid type for argument 3:
146 builtin-overflow.c:64:45: int enum e *
147 builtin-overflow.c:65:38: error: invalid type for argument 1:
148 builtin-overflow.c:65:38: bool [usertype] b
149 builtin-overflow.c:66:41: error: invalid type for argument 2:
150 builtin-overflow.c:66:41: bool [usertype] b
151 builtin-overflow.c:67:45: error: invalid type for argument 3:
152 builtin-overflow.c:67:45: bool *
153 builtin-overflow.c:68:44: error: invalid type for argument 3:
154 builtin-overflow.c:68:44: void *p
155 builtin-overflow.c:70:39: error: not enough arguments for __builtin_add_overflow_p
156 builtin-overflow.c:71:39: error: not enough arguments for __builtin_add_overflow_p
157 builtin-overflow.c:72:39: error: not enough arguments for __builtin_add_overflow_p
158 builtin-overflow.c:73:39: error: too many arguments for __builtin_add_overflow_p
159 builtin-overflow.c:74:40: error: invalid type for argument 1:
160 builtin-overflow.c:74:40: int enum e [addressable] e
161 builtin-overflow.c:75:43: error: invalid type for argument 2:
162 builtin-overflow.c:75:43: int enum e [addressable] e
163 builtin-overflow.c:76:46: error: invalid type for argument 3:
164 builtin-overflow.c:76:46: int enum e [addressable] e
165 builtin-overflow.c:77:40: error: invalid type for argument 1:
166 builtin-overflow.c:77:40: bool [addressable] [usertype] b
167 builtin-overflow.c:78:43: error: invalid type for argument 2:
168 builtin-overflow.c:78:43: bool [addressable] [usertype] b
169 builtin-overflow.c:79:46: error: invalid type for argument 3:
170 builtin-overflow.c:79:46: bool [addressable] [usertype] b
171 builtin-overflow.c:80:46: error: invalid type for argument 3:
172 builtin-overflow.c:80:46: void *p
173 builtin-overflow.c:82:37: error: not enough arguments for __builtin_sub_overflow
174 builtin-overflow.c:83:37: error: not enough arguments for __builtin_sub_overflow
175 builtin-overflow.c:84:37: error: not enough arguments for __builtin_sub_overflow
176 builtin-overflow.c:85:37: error: too many arguments for __builtin_sub_overflow
177 builtin-overflow.c:86:38: error: invalid type for argument 1:
178 builtin-overflow.c:86:38: int enum e [addressable] e
179 builtin-overflow.c:87:41: error: invalid type for argument 2:
180 builtin-overflow.c:87:41: int enum e [addressable] e
181 builtin-overflow.c:88:45: error: invalid type for argument 3:
182 builtin-overflow.c:88:45: int enum e *
183 builtin-overflow.c:89:38: error: invalid type for argument 1:
184 builtin-overflow.c:89:38: bool [addressable] [usertype] b
185 builtin-overflow.c:90:41: error: invalid type for argument 2:
186 builtin-overflow.c:90:41: bool [addressable] [usertype] b
187 builtin-overflow.c:91:45: error: invalid type for argument 3:
188 builtin-overflow.c:91:45: bool *
189 builtin-overflow.c:92:44: error: invalid type for argument 3:
190 builtin-overflow.c:92:44: void *p
191 builtin-overflow.c:94:39: error: not enough arguments for __builtin_sub_overflow_p
192 builtin-overflow.c:95:39: error: not enough arguments for __builtin_sub_overflow_p
193 builtin-overflow.c:96:39: error: not enough arguments for __builtin_sub_overflow_p
194 builtin-overflow.c:97:39: error: too many arguments for __builtin_sub_overflow_p
195 builtin-overflow.c:98:40: error: invalid type for argument 1:
196 builtin-overflow.c:98:40: int enum e [addressable] e
197 builtin-overflow.c:99:43: error: invalid type for argument 2:
198 builtin-overflow.c:99:43: int enum e [addressable] e
199 builtin-overflow.c:100:46: error: invalid type for argument 3:
200 builtin-overflow.c:100:46: int enum e [addressable] e
201 builtin-overflow.c:101:40: error: invalid type for argument 1:
202 builtin-overflow.c:101:40: bool [addressable] [usertype] b
203 builtin-overflow.c:102:43: error: invalid type for argument 2:
204 builtin-overflow.c:102:43: bool [addressable] [usertype] b
205 builtin-overflow.c:103:46: error: invalid type for argument 3:
206 builtin-overflow.c:103:46: bool [addressable] [usertype] b
207 builtin-overflow.c:104:46: error: invalid type for argument 3:
208 builtin-overflow.c:104:46: void *p
209 builtin-overflow.c:106:37: error: not enough arguments for __builtin_mul_overflow
210 builtin-overflow.c:107:37: error: not enough arguments for __builtin_mul_overflow
211 builtin-overflow.c:108:37: error: not enough arguments for __builtin_mul_overflow
212 builtin-overflow.c:109:37: error: too many arguments for __builtin_mul_overflow
213 builtin-overflow.c:110:38: error: invalid type for argument 1:
214 builtin-overflow.c:110:38: int enum e [addressable] e
215 builtin-overflow.c:111:41: error: invalid type for argument 2:
216 builtin-overflow.c:111:41: int enum e [addressable] e
217 builtin-overflow.c:112:45: error: invalid type for argument 3:
218 builtin-overflow.c:112:45: int enum e *
219 builtin-overflow.c:113:38: error: invalid type for argument 1:
220 builtin-overflow.c:113:38: bool [addressable] [usertype] b
221 builtin-overflow.c:114:41: error: invalid type for argument 2:
222 builtin-overflow.c:114:41: bool [addressable] [usertype] b
223 builtin-overflow.c:115:45: error: invalid type for argument 3:
224 builtin-overflow.c:115:45: bool *
225 builtin-overflow.c:116:44: error: invalid type for argument 3:
226 builtin-overflow.c:116:44: void *p
227 builtin-overflow.c:118:39: error: not enough arguments for __builtin_mul_overflow_p
228 builtin-overflow.c:119:39: error: not enough arguments for __builtin_mul_overflow_p
229 builtin-overflow.c:120:39: error: not enough arguments for __builtin_mul_overflow_p
230 builtin-overflow.c:121:39: error: too many arguments for __builtin_mul_overflow_p
231 builtin-overflow.c:122:40: error: invalid type for argument 1:
232 builtin-overflow.c:122:40: int enum e [addressable] e
233 builtin-overflow.c:123:43: error: invalid type for argument 2:
234 builtin-overflow.c:123:43: int enum e [addressable] e
235 builtin-overflow.c:124:46: error: invalid type for argument 3:
236 builtin-overflow.c:124:46: int enum e [addressable] e
237 builtin-overflow.c:125:40: error: invalid type for argument 1:
238 builtin-overflow.c:125:40: bool [addressable] [usertype] b
239 builtin-overflow.c:126:43: error: invalid type for argument 2:
240 builtin-overflow.c:126:43: bool [addressable] [usertype] b
241 builtin-overflow.c:127:46: error: invalid type for argument 3:
242 builtin-overflow.c:127:46: bool [addressable] [usertype] b
243 builtin-overflow.c:128:46: error: invalid type for argument 3:
244 builtin-overflow.c:128:46: void *p