bool isObjCLifetimeType() const; // (array of)* retainable type
bool isObjCIndirectLifetimeType() const; // (pointer to)* lifetime type
bool isObjCNSObjectType() const; // __attribute__((NSObject))
- bool isObjCIndependentClassType() const; // __attribute__((IndependentClass))
+ bool isObjCIndependentClassType() const; // __attribute__((objc_independent_class))
// FIXME: change this to 'raw' interface type, so we can used 'interface' type
// for the common case.
bool isObjCObjectType() const; // NSString or typeof(*(id)0)
}
def ObjCIndependentClass : InheritableAttr {
- let Spellings = [GNU<"IndependentClass">];
+ let Spellings = [GNU<"objc_independent_class">];
let Documentation = [Undocumented];
}
"'NSObject' attribute may be put on a typedef only; attribute is ignored">,
InGroup<NSobjectAttribute>;
def warn_independentclass_attribute : Warning<
- "'IndependentClass' attribute may be put on a typedef only; "
+ "'objc_independent_class' attribute may be put on a typedef only; "
"attribute is ignored">,
InGroup<IndependentClassAttribute>;
def warn_ptr_independentclass_attribute : Warning<
- "'IndependentClass' attribute may be put on Objective-C object "
+ "'objc_independent_class' attribute may be put on Objective-C object "
"pointer type only; attribute is ignored">,
InGroup<IndependentClassAttribute>;
def warn_attribute_weak_on_local : Warning<
--- /dev/null
+// 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;
+}
+++ /dev/null
-// RUN: %clang_cc1 -fsyntax-only -verify -Wno-objc-root-class %s
-// rdar://20255473
-
-@interface NSObject @end
-
-typedef NSObject * __attribute__((IndependentClass))dispatch_queue_t;
-
-typedef struct S {int ii; } * __attribute__((IndependentClass))dispatch_queue_t_2; // expected-warning {{Objective-C object}}
-
-typedef struct { // expected-warning {{'IndependentClass' attribute may be put on a typedef only; attribute is ignored}}
- NSObject *__attribute__((IndependentClass)) ns; // expected-warning {{'IndependentClass' attribute may be put on a typedef only; attribute is ignored}}
-} __attribute__((IndependentClass)) T;
-
-dispatch_queue_t dispatch_queue_create();
-
-@interface DispatchQPointerCastIssue : NSObject {
- NSObject *__attribute__((IndependentClass)) Ivar; // expected-warning {{'IndependentClass' attribute may be put on a typedef only; attribute is ignored}}
-}
-
-@property (copy) NSObject *__attribute__((IndependentClass)) Prop; // expected-warning {{'IndependentClass' attribute may be put on a typedef only; attribute is ignored}}
-
-typedef NSObject * __attribute__((IndependentClass))dispatch_queue_t_1;
-
-@end
-
-@implementation DispatchQPointerCastIssue
-+ (dispatch_queue_t) newDispatchQueue {
- return dispatch_queue_create();
-}
-@end
-
-NSObject *get_nsobject() {
- typedef NSObject * __attribute__((IndependentClass))dispatch_queue_t;
- dispatch_queue_t dt;
- return dt;
-}