diff options
author | David Ayers <ayers@fsfe.org> | 2009-04-02 21:46:00 +0000 |
---|---|---|
committer | David Ayers <ayers@gcc.gnu.org> | 2009-04-02 21:46:00 +0000 |
commit | 608f7b2ec681eb2fd5f178a8e3042598e7c2c615 (patch) | |
tree | 601f65ef6fb8114b0ad4977e3a4e461b0984fcf4 /gcc | |
parent | aa1ca044b55fdca2b9c38728b512357f7ebc966b (diff) | |
download | gcc-608f7b2ec681eb2fd5f178a8e3042598e7c2c615.zip gcc-608f7b2ec681eb2fd5f178a8e3042598e7c2c615.tar.gz gcc-608f7b2ec681eb2fd5f178a8e3042598e7c2c615.tar.bz2 |
re PR objc/18456 (ICE compiling Objective C code with protocol-qualified objects)
2009-04-02 David Ayers <ayers@fsfe.org>
PR objc/18456
* objc.dg/bad-receiver-type-2.m: New test contributed by
Alexander Mamberg.
From-SVN: r145478
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/objc.dg/bad-receiver-type-2.m | 41 |
2 files changed, 47 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 4d1e325..e1265cf 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2009-04-02 David Ayers <ayers@fsfe.org> + + PR objc/18456 + * objc.dg/bad-receiver-type-2.m: New test contributed by + Alexander Mamberg. + 2009-04-02 Jason Merrill <jason@redhat.com> PR c++/25185 diff --git a/gcc/testsuite/objc.dg/bad-receiver-type-2.m b/gcc/testsuite/objc.dg/bad-receiver-type-2.m new file mode 100644 index 0000000..eca8400 --- /dev/null +++ b/gcc/testsuite/objc.dg/bad-receiver-type-2.m @@ -0,0 +1,41 @@ +/* { 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" } */ +} |