| /* { dg-do compile } */ |
| /* Contributed by Alexander Malmberg: PR18456 */ |
| |
| @interface Foo |
| -(void) foo; |
| @end |
| |
| void *ip; |
| |
| void (*func1)(void); |
| |
| struct |
| { |
| int a:2; |
| } struct1,struct2[2]; |
| |
| union |
| { |
| int a:2; |
| } union1,union2[2]; |
| |
| Foo **f; |
| |
| int main(int argc,char **argv) |
| { |
| [(struct {int a;} *)ip foo]; /* { dg-warning "invalid receiver type" } */ |
| [func1 foo]; /* { dg-warning "invalid receiver type" } */ |
| [struct1.a foo]; /* { dg-warning "invalid receiver type" } */ |
| /* { dg-warning "cast to pointer from integer" "" { target *-*-* } 28 } */ |
| [union1.a foo]; /* { dg-warning "invalid receiver type" } */ |
| /* { dg-warning "cast to pointer from integer" "" { target *-*-* } 30 } */ |
| [struct1 foo]; /* { dg-warning "invalid receiver type" } */ |
| /* { dg-error "cannot convert" "" { target *-*-* } 32 } */ |
| [union1 foo]; /* { dg-warning "invalid receiver type" } */ |
| /* { dg-error "cannot convert" "" { target *-*-* } 34 } */ |
| [struct2 foo]; /* { dg-warning "invalid receiver type" } */ |
| /* { dg-error "cannot convert" "" { target *-*-* } 36 } */ |
| [union2 foo]; /* { dg-warning "invalid receiver type" } */ |
| /* { dg-error "cannot convert" "" { target *-*-* } 38 } */ |
| [f foo]; /* { dg-warning "invalid receiver type" } */ |
| } |