1/* PR c/5503
2   Test whether argument checking is done for fputs, bzero and bcmp.  */
3typedef struct { int i; } FILE;
4typedef __SIZE_TYPE__ size_t;
5int fputs (const char *, FILE *);
6void bzero (void *, size_t);
7int bcmp (const void *, const void *, size_t);
8
9char buf[32];
10FILE *f;
11
12int main ()
13{
14  fputs ("foo");		/* { dg-error "too few" } */
15  fputs ("foo", "bar", "baz");	/* { dg-error "too many" } */
16  fputs (21, 43);
17  bzero (buf);			/* { dg-error "too few" } */
18  bzero (21);			/* { dg-error "too few" } */
19  bcmp (buf, buf + 16);		/* { dg-error "too few" } */
20  bcmp (21);			/* { dg-error "too few" } */
21  fputs ("foo", f);
22  bzero (buf, 32);
23  bcmp (buf, buf + 16, 16);
24  return 0;
25}
26
27/* { dg-warning "passing arg 2 of" "2nd incompatible" { target *-*-* } 15 } */
28/* { dg-warning "passing arg 1 of" "1st incompatible" { target *-*-* } 16 } */
29/* { dg-warning "passing arg 2 of" "2nd incompatible" { target *-*-* } 16 } */
30/* { dg-warning "passing arg 1 of" "1st incompatible" { target *-*-* } 18 } */
31/* { dg-warning "passing arg 1 of" "1st incompatible" { target *-*-* } 20 } */
32