blob: 64e4f32197f054e40302be4280c984ba482bd045 [file] [log] [blame]
/* PR c/59717 */
/* { dg-do compile } */
/* { dg-options "-std=gnu11 -Wno-implicit-function-declaration" } */
void
math (double d, int *ex, double *dp)
{
acos (d); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
acosh (d); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
asin (d); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
asinh (d); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
atan (d); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
atanh (d); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
atan2 (d, d); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
cbrt (d); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
ceil (d); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
copysign (d, d); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
cos (d); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
cosh (d); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
erf (d); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
erfc (d); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
exp (d); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
exp2 (d); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
expm1 (d); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
fabs (d); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
fdim (d, d); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
floor (d); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
fma (d, d, d); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
fmax (d, d); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
fmin (d, d); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
fmod (d, d); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
frexp (d, ex); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
hypot (d, d); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
/* We don't generate the warning for ilogb. */
ilogb (d);
ldexp (d, *ex); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
lgamma (d); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
llrint (d); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
llround (d); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
log (d); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
log10 (d); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
log1p (d); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
log2 (d); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
logb (d); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
lrint (d); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
lround (d); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
modf (d, dp); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
nan (""); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
nearbyint (d); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
nextafter (d, d); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
nexttoward (d, 20.0L); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
pow (d, d); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
remainder (d, d); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
remquo (d, d, ex); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
rint (d); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
round (d); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
scalbln (d, 100L); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
scalbn (d, 100); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
sin (d); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
sinh (d); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
sincos (d, dp, dp); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
sqrt (d); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
tan (d); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
tanh (d); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
tgamma (d); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
trunc (d); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..math.h.." "" { target *-*-* } .-1 } */
}
void
cmplx (double _Complex z)
{
cabs (z); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..complex.h.." "" { target *-*-* } .-1 } */
cacos (z); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..complex.h.." "" { target *-*-* } .-1 } */
cacosh (z); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..complex.h.." "" { target *-*-* } .-1 } */
carg (z); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..complex.h.." "" { target *-*-* } .-1 } */
casin (z); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..complex.h.." "" { target *-*-* } .-1 } */
casinh (z); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..complex.h.." "" { target *-*-* } .-1 } */
catan (z); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..complex.h.." "" { target *-*-* } .-1 } */
catanh (z); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..complex.h.." "" { target *-*-* } .-1 } */
ccos (z); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..complex.h.." "" { target *-*-* } .-1 } */
ccosh (z); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..complex.h.." "" { target *-*-* } .-1 } */
cexp (z); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..complex.h.." "" { target *-*-* } .-1 } */
cimag (z); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..complex.h.." "" { target *-*-* } .-1 } */
clog (z); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..complex.h.." "" { target *-*-* } .-1 } */
conj (z); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..complex.h.." "" { target *-*-* } .-1 } */
cpow (z, z); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..complex.h.." "" { target *-*-* } .-1 } */
cproj (z); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..complex.h.." "" { target *-*-* } .-1 } */
creal (z); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..complex.h.." "" { target *-*-* } .-1 } */
csin (z); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..complex.h.." "" { target *-*-* } .-1 } */
csinh (z); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..complex.h.." "" { target *-*-* } .-1 } */
csqrt (z); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..complex.h.." "" { target *-*-* } .-1 } */
ctan (z); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..complex.h.." "" { target *-*-* } .-1 } */
ctanh (z); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..complex.h.." "" { target *-*-* } .-1 } */
}
void
string (void *p, void *q, __SIZE_TYPE__ sz)
{
memchr (p, 2, sz); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..string.h.." "" { target *-*-* } .-1 } */
/* We don't generate the warning for memcmp. */
memcmp (p, q, sz);
memcpy (p, q, sz); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..string.h.." "" { target *-*-* } .-1 } */
memmove (p, q, sz); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..string.h.." "" { target *-*-* } .-1 } */
memset (p, 0, sz); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..string.h.." "" { target *-*-* } .-1 } */
strcat (p, q); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..string.h.." "" { target *-*-* } .-1 } */
strchr (p, 'a'); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..string.h.." "" { target *-*-* } .-1 } */
/* We don't generate the warning for strcmp. */
strcmp (p, q);
strcpy (p, q); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..string.h.." "" { target *-*-* } .-1 } */
strcspn (p, q); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..string.h.." "" { target *-*-* } .-1 } */
strlen (p); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..string.h.." "" { target *-*-* } .-1 } */
strncat (p, q, sz); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..string.h.." "" { target *-*-* } .-1 } */
/* We don't generate the warning for strncmp. */
strncmp (p, q, sz);
strncpy (p, q, sz); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..string.h.." "" { target *-*-* } .-1 } */
strpbrk (p, q); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..string.h.." "" { target *-*-* } .-1 } */
strrchr (p, 'q'); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..string.h.." "" { target *-*-* } .-1 } */
strspn (p, q); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..string.h.." "" { target *-*-* } .-1 } */
strstr (p, q); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..string.h.." "" { target *-*-* } .-1 } */
}
/* Fake FILE. */
typedef struct { int i; } FILE;
void
stdio (FILE *fp, void *p, __SIZE_TYPE__ sz)
{
fprintf (fp, ""); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..stdio.h.." "" { target *-*-* } .-1 } */
fscanf (fp, ""); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..stdio.h.." "" { target *-*-* } .-1 } */
fwrite (p, sz, sz, fp); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..stdio.h.." "" { target *-*-* } .-1 } */
printf (""); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..stdio.h.." "" { target *-*-* } .-1 } */
scanf (""); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..stdio.h.." "" { target *-*-* } .-1 } */
snprintf ("", sz, ""); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..stdio.h.." "" { target *-*-* } .-1 } */
sprintf ("", ""); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..stdio.h.." "" { target *-*-* } .-1 } */
sscanf ("", ""); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..stdio.h.." "" { target *-*-* } .-1 } */
}
void
stdlib (void *p, void *q, __SIZE_TYPE__ sz)
{
abort (); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..stdlib.h.." "" { target *-*-* } .-1 } */
void *p1 = calloc (sz, 1); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..stdlib.h.." "" { target *-*-* } .-1 } */
exit (1); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..stdlib.h.." "" { target *-*-* } .-1 } */
free (p); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..stdlib.h.." "" { target *-*-* } .-1 } */
labs (1L); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..stdlib.h.." "" { target *-*-* } .-1 } */
llabs (1LL); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..stdlib.h.." "" { target *-*-* } .-1 } */
void *p2 = malloc (sz); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..stdlib.h.." "" { target *-*-* } .-1 } */
void *p3 = realloc (p, sz); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..stdlib.h.." "" { target *-*-* } .-1 } */
void *p4 = aligned_alloc (sz, sz); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..stdlib.h.." "" { target *-*-* } .-1 } */
}
void
inttypes (__INTMAX_TYPE__ j)
{
imaxabs (j); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..inttypes.h.." "" { target *-*-* } .-1 } */
}
struct tm;
void
timeh (char *s, __SIZE_TYPE__ sz, struct tm *tm)
{
strftime (s, sz, "", tm); /* { dg-warning "incompatible implicit" } */
/* { dg-message "include ..time.h.." "" { target *-*-* } .-1 } */
}