37 lines
1.4 KiB
Objective-C
37 lines
1.4 KiB
Objective-C
// RUN: %clang_cc1 -fsyntax-only -verify -Wno-objc-root-class %s
|
|
// rdar://20255473
|
|
|
|
@interface NSObject @end
|
|
|
|
typedef NSObject * __attribute__((objc_independent_class))dispatch_queue_t;
|
|
|
|
typedef struct S {int ii; } * __attribute__((objc_independent_class))dispatch_queue_t_2; // expected-warning {{Objective-C object}}
|
|
|
|
typedef struct { // expected-warning {{'objc_independent_class' attribute may be put on a typedef only; attribute is ignored}}
|
|
NSObject *__attribute__((objc_independent_class)) ns; // expected-warning {{'objc_independent_class' attribute may be put on a typedef only; attribute is ignored}}
|
|
} __attribute__((objc_independent_class)) T;
|
|
|
|
dispatch_queue_t dispatch_queue_create();
|
|
|
|
@interface DispatchQPointerCastIssue : NSObject {
|
|
NSObject *__attribute__((objc_independent_class)) Ivar; // expected-warning {{'objc_independent_class' attribute may be put on a typedef only; attribute is ignored}}
|
|
}
|
|
|
|
@property (copy) NSObject *__attribute__((objc_independent_class)) Prop; // expected-warning {{'objc_independent_class' attribute may be put on a typedef only; attribute is ignored}}
|
|
|
|
typedef NSObject * __attribute__((objc_independent_class))dispatch_queue_t_1;
|
|
|
|
@end
|
|
|
|
@implementation DispatchQPointerCastIssue
|
|
+ (dispatch_queue_t) newDispatchQueue {
|
|
return dispatch_queue_create();
|
|
}
|
|
@end
|
|
|
|
NSObject *get_nsobject() {
|
|
typedef NSObject * __attribute__((objc_independent_class))dispatch_queue_t;
|
|
dispatch_queue_t dt;
|
|
return dt;
|
|
}
|