// RUN: %clang_cc1 -fsyntax-only -verify %s // expected-no-diagnostics typedef signed char BOOL; typedef struct _NSZone NSZone; @protocol NSObject - (BOOL)isEqual:(id)object; @end @protocol NSCopying - (id)copyWithZone:(NSZone *)zone; @end @interface NSObject <NSObject> {} @end @class NSString, NSData, NSMutableData, NSMutableDictionary, NSMutableArray; @interface SCMObject : NSObject <NSCopying> {} @property(assign) SCMObject *__attribute__((objc_gc(weak))) parent; @end @interface SCMNode : SCMObject { NSString *_name; } @property(copy) NSString *name; @end @implementation SCMNode @synthesize name = _name; - (void) setParent:(SCMObject *__attribute__((objc_gc(weak)))) inParent { super.parent = inParent; } @end