| /* 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 } */ |
| } |