OSDN Git Service

2009-04-02 David Ayers <ayers@fsfe.org>
authorayers <ayers@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 2 Apr 2009 21:46:00 +0000 (21:46 +0000)
committerayers <ayers@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 2 Apr 2009 21:46:00 +0000 (21:46 +0000)
PR objc/18456
* objc.dg/bad-receiver-type-2.m: New test contributed by
Alexander Mamberg.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@145478 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/testsuite/ChangeLog
gcc/testsuite/objc.dg/bad-receiver-type-2.m [new file with mode: 0644]

index 4d1e325..e1265cf 100644 (file)
@@ -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 (file)
index 0000000..eca8400
--- /dev/null
@@ -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" } */
+}