| /* PR libstdc++/88101 */ |
| /* { dg-do compile } */ |
| |
| struct S; |
| struct T { char a; long long b; }; |
| |
| void |
| foo (struct S *p, void *q, char *r, const struct T *s) |
| { |
| __builtin_clear_padding (); /* { dg-error "too few arguments to function '__builtin_clear_padding'" } */ |
| __builtin_clear_padding (1); /* { dg-error "argument 1 in call to function '__builtin_clear_padding' does not have pointer type" } */ |
| __builtin_clear_padding (&p); |
| __builtin_clear_padding (&p, 1); /* { dg-error "too many arguments to function '__builtin_clear_padding'" } */ |
| __builtin_clear_padding (&p, &p); /* { dg-error "too many arguments to function '__builtin_clear_padding'" } */ |
| __builtin_clear_padding (p); /* { dg-error "argument 1 in call to function '__builtin_clear_padding' points to incomplete type" } */ |
| __builtin_clear_padding (q); /* { dg-error "argument 1 in call to function '__builtin_clear_padding' points to incomplete type" } */ |
| __builtin_clear_padding (r); |
| __builtin_clear_padding (s); /* { dg-error "argument 1 in call to function '__builtin_clear_padding' has pointer to 'const' type" } */ |
| } |