/* PR c/5503
|
/* PR c/5503
|
Test whether argument checking is done for fputs, bzero and bcmp. */
|
Test whether argument checking is done for fputs, bzero and bcmp. */
|
typedef struct { int i; } FILE;
|
typedef struct { int i; } FILE;
|
typedef __SIZE_TYPE__ size_t;
|
typedef __SIZE_TYPE__ size_t;
|
int fputs (const char *, FILE *);
|
int fputs (const char *, FILE *);
|
void bzero (void *, size_t);
|
void bzero (void *, size_t);
|
int bcmp (const void *, const void *, size_t);
|
int bcmp (const void *, const void *, size_t);
|
|
|
char buf[32];
|
char buf[32];
|
FILE *f;
|
FILE *f;
|
|
|
int main ()
|
int main ()
|
{
|
{
|
fputs ("foo"); /* { dg-error "too few" } */
|
fputs ("foo"); /* { dg-error "too few" } */
|
fputs ("foo", "bar", "baz"); /* { dg-error "too many" } */
|
fputs ("foo", "bar", "baz"); /* { dg-error "too many" } */
|
fputs (21, 43);
|
fputs (21, 43);
|
bzero (buf); /* { dg-error "too few" } */
|
bzero (buf); /* { dg-error "too few" } */
|
bzero (21); /* { dg-error "too few" } */
|
bzero (21); /* { dg-error "too few" } */
|
bcmp (buf, buf + 16); /* { dg-error "too few" } */
|
bcmp (buf, buf + 16); /* { dg-error "too few" } */
|
bcmp (21); /* { dg-error "too few" } */
|
bcmp (21); /* { dg-error "too few" } */
|
fputs ("foo", f);
|
fputs ("foo", f);
|
bzero (buf, 32);
|
bzero (buf, 32);
|
bcmp (buf, buf + 16, 16);
|
bcmp (buf, buf + 16, 16);
|
return 0;
|
return 0;
|
}
|
}
|
|
|
/* { dg-warning "passing argument 2 of" "2nd incompatible" { target *-*-* } 15 } */
|
/* { dg-warning "passing argument 2 of" "2nd incompatible" { target *-*-* } 15 } */
|
/* { dg-message "note: expected '\[^'\n\]*' but argument is of type '\[^'\n\]*'" "note: expected" { target *-*-* } 5 } */
|
/* { dg-message "note: expected '\[^'\n\]*' but argument is of type '\[^'\n\]*'" "note: expected" { target *-*-* } 5 } */
|
/* { dg-warning "passing argument 1 of" "1st incompatible" { target *-*-* } 16 } */
|
/* { dg-warning "passing argument 1 of" "1st incompatible" { target *-*-* } 16 } */
|
/* { dg-warning "passing argument 2 of" "2nd incompatible" { target *-*-* } 16 } */
|
/* { dg-warning "passing argument 2 of" "2nd incompatible" { target *-*-* } 16 } */
|
/* { dg-warning "passing argument 1 of" "1st incompatible" { target *-*-* } 18 } */
|
/* { dg-warning "passing argument 1 of" "1st incompatible" { target *-*-* } 18 } */
|
/* { dg-message "note: expected '\[^'\n\]*' but argument is of type '\[^'\n\]*'" "note: expected" { target *-*-* } 6 } */
|
/* { dg-message "note: expected '\[^'\n\]*' but argument is of type '\[^'\n\]*'" "note: expected" { target *-*-* } 6 } */
|
/* { dg-warning "passing argument 1 of" "1st incompatible" { target *-*-* } 20 } */
|
/* { dg-warning "passing argument 1 of" "1st incompatible" { target *-*-* } 20 } */
|
/* { dg-message "note: expected '\[^'\n\]*' but argument is of type '\[^'\n\]*'" "note: expected" { target *-*-* } 7 } */
|
/* { dg-message "note: expected '\[^'\n\]*' but argument is of type '\[^'\n\]*'" "note: expected" { target *-*-* } 7 } */
|
|
|