Do not issue bogus error on __weak/__strong ivar access.
llvm-svn: 65583
This commit is contained in:
parent
d42c29f9a2
commit
7285cf57a3
|
|
@ -476,20 +476,20 @@ const ObjCInterfaceType *Type::getAsObjCInterfaceType() const {
|
|||
// There is no sugar for ObjCInterfaceType's, just return the canonical
|
||||
// type pointer if it is the right class. There is no typedef information to
|
||||
// return and these cannot be Address-space qualified.
|
||||
return dyn_cast<ObjCInterfaceType>(CanonicalType);
|
||||
return dyn_cast<ObjCInterfaceType>(CanonicalType.getUnqualifiedType());
|
||||
}
|
||||
|
||||
const ObjCQualifiedInterfaceType *
|
||||
Type::getAsObjCQualifiedInterfaceType() const {
|
||||
// There is no sugar for ObjCQualifiedInterfaceType's, just return the
|
||||
// canonical type pointer if it is the right class.
|
||||
return dyn_cast<ObjCQualifiedInterfaceType>(CanonicalType);
|
||||
return dyn_cast<ObjCQualifiedInterfaceType>(CanonicalType.getUnqualifiedType());
|
||||
}
|
||||
|
||||
const ObjCQualifiedIdType *Type::getAsObjCQualifiedIdType() const {
|
||||
// There is no sugar for ObjCQualifiedIdType's, just return the canonical
|
||||
// type pointer if it is the right class.
|
||||
return dyn_cast<ObjCQualifiedIdType>(CanonicalType);
|
||||
return dyn_cast<ObjCQualifiedIdType>(CanonicalType.getUnqualifiedType());
|
||||
}
|
||||
|
||||
const TemplateTypeParmType *Type::getAsTemplateTypeParmType() const {
|
||||
|
|
|
|||
|
|
@ -0,0 +1,73 @@
|
|||
// RUN: clang -fsyntax-only -verify %s
|
||||
|
||||
typedef signed char BOOL;
|
||||
typedef unsigned int NSUInteger;
|
||||
typedef struct _NSZone NSZone;
|
||||
@class NSInvocation, NSMethodSignature, NSCoder, NSString, NSEnumerator;
|
||||
@protocol NSObject
|
||||
- (BOOL)isEqual:(id)object;
|
||||
@end
|
||||
@protocol NSCopying - (id)copyWithZone:(NSZone *)zone;
|
||||
@end
|
||||
@protocol NSMutableCopying - (id)mutableCopyWithZone:(NSZone *)zone;
|
||||
@end
|
||||
@protocol NSCoding - (void)encodeWithCoder:(NSCoder *)aCoder;
|
||||
@end
|
||||
@interface NSObject <NSObject> {}
|
||||
@end
|
||||
extern id NSAllocateObject(Class aClass, NSUInteger extraBytes, NSZone *zone);
|
||||
typedef struct {
|
||||
id *itemsPtr;
|
||||
unsigned long *mutationsPtr;
|
||||
} NSFastEnumerationState;
|
||||
@protocol NSFastEnumeration
|
||||
- (NSUInteger)countByEnumeratingWithState:(NSFastEnumerationState *)state objects:(id *)stackbuf count:(NSUInteger)len;
|
||||
@end
|
||||
@class NSString;
|
||||
@interface NSArray : NSObject <NSCopying, NSMutableCopying, NSCoding, NSFastEnumeration> - (NSUInteger)count;
|
||||
@end
|
||||
@interface NSMutableArray : NSArray - (void)addObject:(id)anObject;
|
||||
@end
|
||||
extern NSString * const NSUndoManagerCheckpointNotification;
|
||||
@interface NSValueTransformer : NSObject {} @end
|
||||
@class FooModel;
|
||||
@interface FooObject : NSObject <NSCopying> {}
|
||||
@end
|
||||
@interface FooNode : FooObject {}
|
||||
- (NSArray *) children;
|
||||
@end
|
||||
typedef enum { Foo_HUH_NONE } FooHUHCode;
|
||||
@interface FooPlaypenEntry : FooNode {
|
||||
NSMutableArray *_interestingChildren;
|
||||
FooHUHCode _HUH;
|
||||
__attribute__((objc_gc(weak))) FooPlaypenEntry *_mostInterestingChild;
|
||||
id _author;
|
||||
}
|
||||
@property(copy) NSString *author;
|
||||
- (BOOL) isInteresting;
|
||||
@end NSString *FooHUHCodeToString(FooHUHCode HUH) {
|
||||
}
|
||||
@interface FooHUHCodeToStringTransformer: NSValueTransformer {
|
||||
}
|
||||
@end @implementation FooPlaypenEntry @synthesize author = _author;
|
||||
- (BOOL) isInteresting { return 1; }
|
||||
- (NSArray *) interestingChildren {
|
||||
if (!_interestingChildren) {
|
||||
for (FooPlaypenEntry *child in [self children]) {
|
||||
if ([child isInteresting]) {
|
||||
if (!_mostInterestingChild)
|
||||
_mostInterestingChild = child;
|
||||
else if (child->_HUH > _mostInterestingChild->_HUH)
|
||||
_mostInterestingChild = child;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
- (FooHUHCode) HUH {
|
||||
if (_HUH == Foo_HUH_NONE) {
|
||||
if (_mostInterestingChild)
|
||||
return [_mostInterestingChild HUH];
|
||||
}
|
||||
}
|
||||
@end
|
||||
|
||||
Loading…
Reference in New Issue