r235135 - [Objective-C Sema]. In my last patch change the
Fariborz Jahanian
fjahanian at apple.com
Thu Apr 16 14:52:34 PDT 2015
Author: fjahanian
Date: Thu Apr 16 16:52:34 2015
New Revision: 235135
URL: http://llvm.org/viewvc/llvm-project?rev=235135&view=rev
Log:
[Objective-C Sema]. In my last patch change the
attribute name to objc_independent_class.
rdar://20255473
Added:
cfe/trunk/test/SemaObjC/objc-independent-class-attribute.m
- copied, changed from r235128, cfe/trunk/test/SemaObjC/psuedo-class-attribute.m
Removed:
cfe/trunk/test/SemaObjC/psuedo-class-attribute.m
Modified:
cfe/trunk/include/clang/AST/Type.h
cfe/trunk/include/clang/Basic/Attr.td
cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td
Modified: cfe/trunk/include/clang/AST/Type.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/AST/Type.h?rev=235135&r1=235134&r2=235135&view=diff
==============================================================================
--- cfe/trunk/include/clang/AST/Type.h (original)
+++ cfe/trunk/include/clang/AST/Type.h Thu Apr 16 16:52:34 2015
@@ -1575,7 +1575,7 @@ public:
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)
Modified: cfe/trunk/include/clang/Basic/Attr.td
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/Attr.td?rev=235135&r1=235134&r2=235135&view=diff
==============================================================================
--- cfe/trunk/include/clang/Basic/Attr.td (original)
+++ cfe/trunk/include/clang/Basic/Attr.td Thu Apr 16 16:52:34 2015
@@ -1059,7 +1059,7 @@ def ObjCNSObject : InheritableAttr {
}
def ObjCIndependentClass : InheritableAttr {
- let Spellings = [GNU<"IndependentClass">];
+ let Spellings = [GNU<"objc_independent_class">];
let Documentation = [Undocumented];
}
Modified: cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td?rev=235135&r1=235134&r2=235135&view=diff
==============================================================================
--- cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td (original)
+++ cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td Thu Apr 16 16:52:34 2015
@@ -2201,11 +2201,11 @@ def warn_nsobject_attribute : Warning<
"'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<
Copied: cfe/trunk/test/SemaObjC/objc-independent-class-attribute.m (from r235128, cfe/trunk/test/SemaObjC/psuedo-class-attribute.m)
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaObjC/objc-independent-class-attribute.m?p2=cfe/trunk/test/SemaObjC/objc-independent-class-attribute.m&p1=cfe/trunk/test/SemaObjC/psuedo-class-attribute.m&r1=235128&r2=235135&rev=235135&view=diff
==============================================================================
--- cfe/trunk/test/SemaObjC/psuedo-class-attribute.m (original)
+++ cfe/trunk/test/SemaObjC/objc-independent-class-attribute.m Thu Apr 16 16:52:34 2015
@@ -3,23 +3,23 @@
@interface NSObject @end
-typedef NSObject * __attribute__((IndependentClass))dispatch_queue_t;
+typedef NSObject * __attribute__((objc_independent_class))dispatch_queue_t;
-typedef struct S {int ii; } * __attribute__((IndependentClass))dispatch_queue_t_2; // expected-warning {{Objective-C object}}
+typedef struct S {int ii; } * __attribute__((objc_independent_class))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;
+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__((IndependentClass)) Ivar; // expected-warning {{'IndependentClass' attribute may be put on a typedef only; attribute is ignored}}
+ NSObject *__attribute__((objc_independent_class)) Ivar; // expected-warning {{'objc_independent_class' attribute may be put on a typedef only; attribute is ignored}}
}
- at property (copy) NSObject *__attribute__((IndependentClass)) Prop; // expected-warning {{'IndependentClass' attribute may be put on a typedef only; attribute is ignored}}
+ at 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__((IndependentClass))dispatch_queue_t_1;
+typedef NSObject * __attribute__((objc_independent_class))dispatch_queue_t_1;
@end
@@ -30,7 +30,7 @@ typedef NSObject * __attribute__((Indepe
@end
NSObject *get_nsobject() {
- typedef NSObject * __attribute__((IndependentClass))dispatch_queue_t;
+ typedef NSObject * __attribute__((objc_independent_class))dispatch_queue_t;
dispatch_queue_t dt;
return dt;
}
Removed: cfe/trunk/test/SemaObjC/psuedo-class-attribute.m
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaObjC/psuedo-class-attribute.m?rev=235134&view=auto
==============================================================================
--- cfe/trunk/test/SemaObjC/psuedo-class-attribute.m (original)
+++ cfe/trunk/test/SemaObjC/psuedo-class-attribute.m (removed)
@@ -1,36 +0,0 @@
-// RUN: %clang_cc1 -fsyntax-only -verify -Wno-objc-root-class %s
-// rdar://20255473
-
- at 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();
-
- at interface DispatchQPointerCastIssue : NSObject {
- NSObject *__attribute__((IndependentClass)) Ivar; // expected-warning {{'IndependentClass' attribute may be put on a typedef only; attribute is ignored}}
-}
-
- at 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;
-
- at end
-
- at implementation DispatchQPointerCastIssue
-+ (dispatch_queue_t) newDispatchQueue {
- return dispatch_queue_create();
-}
- at end
-
-NSObject *get_nsobject() {
- typedef NSObject * __attribute__((IndependentClass))dispatch_queue_t;
- dispatch_queue_t dt;
- return dt;
-}
More information about the cfe-commits
mailing list