2016-12-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
[official-gcc.git] / gcc / testsuite / gcc.dg / pr59717.c
blob948180c004a1a593ae6e545a3ca2fc665fc17fd8
1 /* PR c/59717 */
2 /* { dg-do compile } */
3 /* { dg-options "-std=gnu11 -Wno-implicit-function-declaration" } */
5 void
6 math (double d, int *ex, double *dp)
8 acos (d); /* { dg-warning "incompatible implicit" } */
9 /* { dg-message "include ..math.h.." "" { target *-*-* } 8 } */
10 acosh (d); /* { dg-warning "incompatible implicit" } */
11 /* { dg-message "include ..math.h.." "" { target *-*-* } 10 } */
12 asin (d); /* { dg-warning "incompatible implicit" } */
13 /* { dg-message "include ..math.h.." "" { target *-*-* } 12 } */
14 asinh (d); /* { dg-warning "incompatible implicit" } */
15 /* { dg-message "include ..math.h.." "" { target *-*-* } 14 } */
16 atan (d); /* { dg-warning "incompatible implicit" } */
17 /* { dg-message "include ..math.h.." "" { target *-*-* } 16 } */
18 atanh (d); /* { dg-warning "incompatible implicit" } */
19 /* { dg-message "include ..math.h.." "" { target *-*-* } 18 } */
20 atan2 (d, d); /* { dg-warning "incompatible implicit" } */
21 /* { dg-message "include ..math.h.." "" { target *-*-* } 20 } */
22 cbrt (d); /* { dg-warning "incompatible implicit" } */
23 /* { dg-message "include ..math.h.." "" { target *-*-* } 22 } */
24 ceil (d); /* { dg-warning "incompatible implicit" } */
25 /* { dg-message "include ..math.h.." "" { target *-*-* } 24 } */
26 copysign (d, d); /* { dg-warning "incompatible implicit" } */
27 /* { dg-message "include ..math.h.." "" { target *-*-* } 26 } */
28 cos (d); /* { dg-warning "incompatible implicit" } */
29 /* { dg-message "include ..math.h.." "" { target *-*-* } 28 } */
30 cosh (d); /* { dg-warning "incompatible implicit" } */
31 /* { dg-message "include ..math.h.." "" { target *-*-* } 30 } */
32 erf (d); /* { dg-warning "incompatible implicit" } */
33 /* { dg-message "include ..math.h.." "" { target *-*-* } 32 } */
34 erfc (d); /* { dg-warning "incompatible implicit" } */
35 /* { dg-message "include ..math.h.." "" { target *-*-* } 34 } */
36 exp (d); /* { dg-warning "incompatible implicit" } */
37 /* { dg-message "include ..math.h.." "" { target *-*-* } 36 } */
38 exp2 (d); /* { dg-warning "incompatible implicit" } */
39 /* { dg-message "include ..math.h.." "" { target *-*-* } 38 } */
40 expm1 (d); /* { dg-warning "incompatible implicit" } */
41 /* { dg-message "include ..math.h.." "" { target *-*-* } 40 } */
42 fabs (d); /* { dg-warning "incompatible implicit" } */
43 /* { dg-message "include ..math.h.." "" { target *-*-* } 42 } */
44 fdim (d, d); /* { dg-warning "incompatible implicit" } */
45 /* { dg-message "include ..math.h.." "" { target *-*-* } 44 } */
46 floor (d); /* { dg-warning "incompatible implicit" } */
47 /* { dg-message "include ..math.h.." "" { target *-*-* } 46 } */
48 fma (d, d, d); /* { dg-warning "incompatible implicit" } */
49 /* { dg-message "include ..math.h.." "" { target *-*-* } 48 } */
50 fmax (d, d); /* { dg-warning "incompatible implicit" } */
51 /* { dg-message "include ..math.h.." "" { target *-*-* } 50 } */
52 fmin (d, d); /* { dg-warning "incompatible implicit" } */
53 /* { dg-message "include ..math.h.." "" { target *-*-* } 52 } */
54 fmod (d, d); /* { dg-warning "incompatible implicit" } */
55 /* { dg-message "include ..math.h.." "" { target *-*-* } 54 } */
56 frexp (d, ex); /* { dg-warning "incompatible implicit" } */
57 /* { dg-message "include ..math.h.." "" { target *-*-* } 56 } */
58 hypot (d, d); /* { dg-warning "incompatible implicit" } */
59 /* { dg-message "include ..math.h.." "" { target *-*-* } 58 } */
60 /* We don't generate the warning for ilogb. */
61 ilogb (d);
62 ldexp (d, *ex); /* { dg-warning "incompatible implicit" } */
63 /* { dg-message "include ..math.h.." "" { target *-*-* } 62 } */
64 lgamma (d); /* { dg-warning "incompatible implicit" } */
65 /* { dg-message "include ..math.h.." "" { target *-*-* } 64 } */
66 llrint (d); /* { dg-warning "incompatible implicit" } */
67 /* { dg-message "include ..math.h.." "" { target *-*-* } 66 } */
68 llround (d); /* { dg-warning "incompatible implicit" } */
69 /* { dg-message "include ..math.h.." "" { target *-*-* } 68 } */
70 log (d); /* { dg-warning "incompatible implicit" } */
71 /* { dg-message "include ..math.h.." "" { target *-*-* } 70 } */
72 log10 (d); /* { dg-warning "incompatible implicit" } */
73 /* { dg-message "include ..math.h.." "" { target *-*-* } 72 } */
74 log1p (d); /* { dg-warning "incompatible implicit" } */
75 /* { dg-message "include ..math.h.." "" { target *-*-* } 74 } */
76 log2 (d); /* { dg-warning "incompatible implicit" } */
77 /* { dg-message "include ..math.h.." "" { target *-*-* } 76 } */
78 logb (d); /* { dg-warning "incompatible implicit" } */
79 /* { dg-message "include ..math.h.." "" { target *-*-* } 78 } */
80 lrint (d); /* { dg-warning "incompatible implicit" } */
81 /* { dg-message "include ..math.h.." "" { target *-*-* } 80 } */
82 lround (d); /* { dg-warning "incompatible implicit" } */
83 /* { dg-message "include ..math.h.." "" { target *-*-* } 82 } */
84 modf (d, dp); /* { dg-warning "incompatible implicit" } */
85 /* { dg-message "include ..math.h.." "" { target *-*-* } 84 } */
86 nan (""); /* { dg-warning "incompatible implicit" } */
87 /* { dg-message "include ..math.h.." "" { target *-*-* } 86 } */
88 nearbyint (d); /* { dg-warning "incompatible implicit" } */
89 /* { dg-message "include ..math.h.." "" { target *-*-* } 88 } */
90 nextafter (d, d); /* { dg-warning "incompatible implicit" } */
91 /* { dg-message "include ..math.h.." "" { target *-*-* } 90 } */
92 nexttoward (d, 20.0L); /* { dg-warning "incompatible implicit" } */
93 /* { dg-message "include ..math.h.." "" { target *-*-* } 92 } */
94 pow (d, d); /* { dg-warning "incompatible implicit" } */
95 /* { dg-message "include ..math.h.." "" { target *-*-* } 94 } */
96 remainder (d, d); /* { dg-warning "incompatible implicit" } */
97 /* { dg-message "include ..math.h.." "" { target *-*-* } 96 } */
98 remquo (d, d, ex); /* { dg-warning "incompatible implicit" } */
99 /* { dg-message "include ..math.h.." "" { target *-*-* } 98 } */
100 rint (d); /* { dg-warning "incompatible implicit" } */
101 /* { dg-message "include ..math.h.." "" { target *-*-* } 100 } */
102 round (d); /* { dg-warning "incompatible implicit" } */
103 /* { dg-message "include ..math.h.." "" { target *-*-* } 102 } */
104 scalbln (d, 100L); /* { dg-warning "incompatible implicit" } */
105 /* { dg-message "include ..math.h.." "" { target *-*-* } 104 } */
106 scalbn (d, 100); /* { dg-warning "incompatible implicit" } */
107 /* { dg-message "include ..math.h.." "" { target *-*-* } 106 } */
108 sin (d); /* { dg-warning "incompatible implicit" } */
109 /* { dg-message "include ..math.h.." "" { target *-*-* } 108 } */
110 sinh (d); /* { dg-warning "incompatible implicit" } */
111 /* { dg-message "include ..math.h.." "" { target *-*-* } 110 } */
112 sincos (d, dp, dp); /* { dg-warning "incompatible implicit" } */
113 /* { dg-message "include ..math.h.." "" { target *-*-* } 112 } */
114 sqrt (d); /* { dg-warning "incompatible implicit" } */
115 /* { dg-message "include ..math.h.." "" { target *-*-* } 114 } */
116 tan (d); /* { dg-warning "incompatible implicit" } */
117 /* { dg-message "include ..math.h.." "" { target *-*-* } 116 } */
118 tanh (d); /* { dg-warning "incompatible implicit" } */
119 /* { dg-message "include ..math.h.." "" { target *-*-* } 118 } */
120 tgamma (d); /* { dg-warning "incompatible implicit" } */
121 /* { dg-message "include ..math.h.." "" { target *-*-* } 120 } */
122 trunc (d); /* { dg-warning "incompatible implicit" } */
123 /* { dg-message "include ..math.h.." "" { target *-*-* } 122 } */
126 void
127 cmplx (double _Complex z)
129 cabs (z); /* { dg-warning "incompatible implicit" } */
130 /* { dg-message "include ..complex.h.." "" { target *-*-* } 129 } */
131 cacos (z); /* { dg-warning "incompatible implicit" } */
132 /* { dg-message "include ..complex.h.." "" { target *-*-* } 131 } */
133 cacosh (z); /* { dg-warning "incompatible implicit" } */
134 /* { dg-message "include ..complex.h.." "" { target *-*-* } 133 } */
135 carg (z); /* { dg-warning "incompatible implicit" } */
136 /* { dg-message "include ..complex.h.." "" { target *-*-* } 135 } */
137 casin (z); /* { dg-warning "incompatible implicit" } */
138 /* { dg-message "include ..complex.h.." "" { target *-*-* } 137 } */
139 casinh (z); /* { dg-warning "incompatible implicit" } */
140 /* { dg-message "include ..complex.h.." "" { target *-*-* } 139 } */
141 catan (z); /* { dg-warning "incompatible implicit" } */
142 /* { dg-message "include ..complex.h.." "" { target *-*-* } 141 } */
143 catanh (z); /* { dg-warning "incompatible implicit" } */
144 /* { dg-message "include ..complex.h.." "" { target *-*-* } 143 } */
145 ccos (z); /* { dg-warning "incompatible implicit" } */
146 /* { dg-message "include ..complex.h.." "" { target *-*-* } 145 } */
147 ccosh (z); /* { dg-warning "incompatible implicit" } */
148 /* { dg-message "include ..complex.h.." "" { target *-*-* } 147 } */
149 cexp (z); /* { dg-warning "incompatible implicit" } */
150 /* { dg-message "include ..complex.h.." "" { target *-*-* } 149 } */
151 cimag (z); /* { dg-warning "incompatible implicit" } */
152 /* { dg-message "include ..complex.h.." "" { target *-*-* } 151 } */
153 clog (z); /* { dg-warning "incompatible implicit" } */
154 /* { dg-message "include ..complex.h.." "" { target *-*-* } 153 } */
155 conj (z); /* { dg-warning "incompatible implicit" } */
156 /* { dg-message "include ..complex.h.." "" { target *-*-* } 155 } */
157 cpow (z, z); /* { dg-warning "incompatible implicit" } */
158 /* { dg-message "include ..complex.h.." "" { target *-*-* } 157 } */
159 cproj (z); /* { dg-warning "incompatible implicit" } */
160 /* { dg-message "include ..complex.h.." "" { target *-*-* } 159 } */
161 creal (z); /* { dg-warning "incompatible implicit" } */
162 /* { dg-message "include ..complex.h.." "" { target *-*-* } 161 } */
163 csin (z); /* { dg-warning "incompatible implicit" } */
164 /* { dg-message "include ..complex.h.." "" { target *-*-* } 163 } */
165 csinh (z); /* { dg-warning "incompatible implicit" } */
166 /* { dg-message "include ..complex.h.." "" { target *-*-* } 165 } */
167 csqrt (z); /* { dg-warning "incompatible implicit" } */
168 /* { dg-message "include ..complex.h.." "" { target *-*-* } 167 } */
169 ctan (z); /* { dg-warning "incompatible implicit" } */
170 /* { dg-message "include ..complex.h.." "" { target *-*-* } 169 } */
171 ctanh (z); /* { dg-warning "incompatible implicit" } */
172 /* { dg-message "include ..complex.h.." "" { target *-*-* } 171 } */
175 void
176 string (void *p, void *q, __SIZE_TYPE__ sz)
178 memchr (p, 2, sz); /* { dg-warning "incompatible implicit" } */
179 /* { dg-message "include ..string.h.." "" { target *-*-* } 178 } */
180 /* We don't generate the warning for memcmp. */
181 memcmp (p, q, sz);
182 memcpy (p, q, sz); /* { dg-warning "incompatible implicit" } */
183 /* { dg-message "include ..string.h.." "" { target *-*-* } 182 } */
184 memmove (p, q, sz); /* { dg-warning "incompatible implicit" } */
185 /* { dg-message "include ..string.h.." "" { target *-*-* } 184 } */
186 memset (p, 0, sz); /* { dg-warning "incompatible implicit" } */
187 /* { dg-message "include ..string.h.." "" { target *-*-* } 186 } */
188 strcat (p, q); /* { dg-warning "incompatible implicit" } */
189 /* { dg-message "include ..string.h.." "" { target *-*-* } 188 } */
190 strchr (p, 'a'); /* { dg-warning "incompatible implicit" } */
191 /* { dg-message "include ..string.h.." "" { target *-*-* } 190 } */
192 /* We don't generate the warning for strcmp. */
193 strcmp (p, q);
194 strcpy (p, q); /* { dg-warning "incompatible implicit" } */
195 /* { dg-message "include ..string.h.." "" { target *-*-* } 194 } */
196 strcspn (p, q); /* { dg-warning "incompatible implicit" } */
197 /* { dg-message "include ..string.h.." "" { target *-*-* } 196 } */
198 strlen (p); /* { dg-warning "incompatible implicit" } */
199 /* { dg-message "include ..string.h.." "" { target *-*-* } 198 } */
200 strncat (p, q, sz); /* { dg-warning "incompatible implicit" } */
201 /* { dg-message "include ..string.h.." "" { target *-*-* } 200 } */
202 /* We don't generate the warning for strncmp. */
203 strncmp (p, q, sz);
204 strncpy (p, q, sz); /* { dg-warning "incompatible implicit" } */
205 /* { dg-message "include ..string.h.." "" { target *-*-* } 204 } */
206 strpbrk (p, q); /* { dg-warning "incompatible implicit" } */
207 /* { dg-message "include ..string.h.." "" { target *-*-* } 206 } */
208 strrchr (p, 'q'); /* { dg-warning "incompatible implicit" } */
209 /* { dg-message "include ..string.h.." "" { target *-*-* } 208 } */
210 strspn (p, q); /* { dg-warning "incompatible implicit" } */
211 /* { dg-message "include ..string.h.." "" { target *-*-* } 210 } */
212 strstr (p, q); /* { dg-warning "incompatible implicit" } */
213 /* { dg-message "include ..string.h.." "" { target *-*-* } 212 } */
216 /* Fake FILE. */
217 typedef struct { int i; } FILE;
219 void
220 stdio (FILE *fp, void *p, __SIZE_TYPE__ sz)
222 fprintf (fp, ""); /* { dg-warning "incompatible implicit" } */
223 /* { dg-message "include ..stdio.h.." "" { target *-*-* } 222 } */
224 fscanf (fp, ""); /* { dg-warning "incompatible implicit" } */
225 /* { dg-message "include ..stdio.h.." "" { target *-*-* } 224 } */
226 fwrite (p, sz, sz, fp); /* { dg-warning "incompatible implicit" } */
227 /* { dg-message "include ..stdio.h.." "" { target *-*-* } 226 } */
228 printf (""); /* { dg-warning "incompatible implicit" } */
229 /* { dg-message "include ..stdio.h.." "" { target *-*-* } 228 } */
230 scanf (""); /* { dg-warning "incompatible implicit" } */
231 /* { dg-message "include ..stdio.h.." "" { target *-*-* } 230 } */
232 snprintf ("", sz, ""); /* { dg-warning "incompatible implicit" } */
233 /* { dg-message "include ..stdio.h.." "" { target *-*-* } 232 } */
234 sprintf ("", ""); /* { dg-warning "incompatible implicit" } */
235 /* { dg-message "include ..stdio.h.." "" { target *-*-* } 234 } */
236 sscanf ("", ""); /* { dg-warning "incompatible implicit" } */
237 /* { dg-message "include ..stdio.h.." "" { target *-*-* } 236 } */
240 void
241 stdlib (void *p, void *q, __SIZE_TYPE__ sz)
243 abort (); /* { dg-warning "incompatible implicit" } */
244 /* { dg-message "include ..stdlib.h.." "" { target *-*-* } 243 } */
245 calloc (sz, 1); /* { dg-warning "incompatible implicit" } */
246 /* { dg-message "include ..stdlib.h.." "" { target *-*-* } 245 } */
247 exit (1); /* { dg-warning "incompatible implicit" } */
248 /* { dg-message "include ..stdlib.h.." "" { target *-*-* } 247 } */
249 free (p); /* { dg-warning "incompatible implicit" } */
250 /* { dg-message "include ..stdlib.h.." "" { target *-*-* } 249 } */
251 labs (1L); /* { dg-warning "incompatible implicit" } */
252 /* { dg-message "include ..stdlib.h.." "" { target *-*-* } 251 } */
253 llabs (1LL); /* { dg-warning "incompatible implicit" } */
254 /* { dg-message "include ..stdlib.h.." "" { target *-*-* } 253 } */
255 malloc (sz); /* { dg-warning "incompatible implicit" } */
256 /* { dg-message "include ..stdlib.h.." "" { target *-*-* } 255 } */
257 realloc (p, sz); /* { dg-warning "incompatible implicit" } */
258 /* { dg-message "include ..stdlib.h.." "" { target *-*-* } 257 } */
259 aligned_alloc (sz, sz); /* { dg-warning "incompatible implicit" } */
260 /* { dg-message "include ..stdlib.h.." "" { target *-*-* } 259 } */
263 void
264 inttypes (__INTMAX_TYPE__ j)
266 imaxabs (j); /* { dg-warning "incompatible implicit" } */
267 /* { dg-message "include ..inttypes.h.." "" { target *-*-* } 266 } */
270 struct tm;
272 void
273 timeh (char *s, __SIZE_TYPE__ sz, struct tm *tm)
275 strftime (s, sz, "", tm); /* { dg-warning "incompatible implicit" } */
276 /* { dg-message "include ..time.h.." "" { target *-*-* } 275 } */