From 2a613cffb13f4dbb2b2af79645573e526d3224c8 Mon Sep 17 00:00:00 2001 From: Nicola Pero <nicola.pero@meta-innovation.com> Date: Mon, 18 Oct 2010 23:32:10 +0000 Subject: [PATCH] In gcc/testsuite/: 2010-10-18 Nicola Pero <nicola.pero@meta-innovation.com> In gcc/testsuite/: 2010-10-18 Nicola Pero <nicola.pero@meta-innovation.com> Merge from 'apple/trunk' branch on FSF servers. 2006-03-16 Fariborz Jahanian <fjahanian@apple.com> Radar 4293709 * objc.dg/proto-init-mimatch-1.m: New. * obj-c++.dg/proto-init-mimatch-1.mm: New. From-SVN: r165668 --- gcc/testsuite/ChangeLog | 10 ++++++ .../obj-c++.dg/proto-init-mimatch-1.mm | 35 +++++++++++++++++++ gcc/testsuite/objc.dg/proto-init-mimatch-1.m | 35 +++++++++++++++++++ 3 files changed, 80 insertions(+) create mode 100644 gcc/testsuite/obj-c++.dg/proto-init-mimatch-1.mm create mode 100644 gcc/testsuite/objc.dg/proto-init-mimatch-1.m diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 2c64ae9beda9..5cdd7d3cf491 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,13 @@ +2010-10-18 Nicola Pero <nicola.pero@meta-innovation.com> + + Merge from 'apple/trunk' branch on FSF servers. + + 2006-03-16 Fariborz Jahanian <fjahanian@apple.com> + + Radar 4293709 + * objc.dg/proto-init-mimatch-1.m: New. + * obj-c++.dg/proto-init-mimatch-1.mm: New. + 2010-10-18 Nicola Pero <nicola.pero@meta-innovation.com> Implemented parsing @synthesize and @dynamic for diff --git a/gcc/testsuite/obj-c++.dg/proto-init-mimatch-1.mm b/gcc/testsuite/obj-c++.dg/proto-init-mimatch-1.mm new file mode 100644 index 000000000000..64e52e812626 --- /dev/null +++ b/gcc/testsuite/obj-c++.dg/proto-init-mimatch-1.mm @@ -0,0 +1,35 @@ +/* Test to warn on protocol mismatch in a variety of initializations. */ + +/* { dg-do compile } */ + +typedef struct objc_class *Class; + +typedef struct objc_object { + Class isa; +} *id; + +@protocol NSObject +@end + +@interface NSObject <NSObject> +@end + +@protocol NSCopying +- (void)copyWithZone; +@end + +@interface Foo:NSObject <NSCopying> +@end + + +extern id <NSObject> NSCopyObject(); + +@implementation Foo +- (void)copyWithZone { + Foo *copy = NSCopyObject(); /* { dg-warning "type \\'id <NSObject>\\' does not conform to the \\'NSCopying\\' protocol" } */ + + Foo<NSObject,NSCopying> *g = NSCopyObject(); /* { dg-warning "type \\'id <NSObject>\\' does not conform to the \\'NSCopying\\' protocol" } */ + + id<NSObject,NSCopying> h = NSCopyObject(); /* { dg-warning "type \\'id <NSObject>\\' does not conform to the \\'NSCopying\\' protocol" } */ +} +@end diff --git a/gcc/testsuite/objc.dg/proto-init-mimatch-1.m b/gcc/testsuite/objc.dg/proto-init-mimatch-1.m new file mode 100644 index 000000000000..64e52e812626 --- /dev/null +++ b/gcc/testsuite/objc.dg/proto-init-mimatch-1.m @@ -0,0 +1,35 @@ +/* Test to warn on protocol mismatch in a variety of initializations. */ + +/* { dg-do compile } */ + +typedef struct objc_class *Class; + +typedef struct objc_object { + Class isa; +} *id; + +@protocol NSObject +@end + +@interface NSObject <NSObject> +@end + +@protocol NSCopying +- (void)copyWithZone; +@end + +@interface Foo:NSObject <NSCopying> +@end + + +extern id <NSObject> NSCopyObject(); + +@implementation Foo +- (void)copyWithZone { + Foo *copy = NSCopyObject(); /* { dg-warning "type \\'id <NSObject>\\' does not conform to the \\'NSCopying\\' protocol" } */ + + Foo<NSObject,NSCopying> *g = NSCopyObject(); /* { dg-warning "type \\'id <NSObject>\\' does not conform to the \\'NSCopying\\' protocol" } */ + + id<NSObject,NSCopying> h = NSCopyObject(); /* { dg-warning "type \\'id <NSObject>\\' does not conform to the \\'NSCopying\\' protocol" } */ +} +@end -- GitLab