forked from OSchip/llvm-project
Allow __attribute__((unused)) to be applied to ObjC ivars.
llvm-svn: 97103
This commit is contained in:
parent
12ee380a61
commit
6bf658abef
|
@ -521,7 +521,7 @@ static void HandleUnusedAttr(Decl *d, const AttributeList &Attr, Sema &S) {
|
|||
return;
|
||||
}
|
||||
|
||||
if (!isa<VarDecl>(d) && !isFunctionOrMethod(d)) {
|
||||
if (!isa<VarDecl>(d) && !isa<ObjCIvarDecl>(d) && !isFunctionOrMethod(d)) {
|
||||
S.Diag(Attr.getLoc(), diag::warn_attribute_wrong_decl_type)
|
||||
<< Attr.getName() << 2 /*variable and function*/;
|
||||
return;
|
||||
|
|
|
@ -7,19 +7,14 @@ int printf(const char *, ...);
|
|||
@end
|
||||
|
||||
@implementation Greeter
|
||||
+ (void) hello {
|
||||
printf("Hello, World!\n");
|
||||
}
|
||||
+ (void) hello { printf("Hello, World!\n"); }
|
||||
@end
|
||||
|
||||
|
||||
int test1(void) {
|
||||
[Greeter hello];
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@interface NSObject @end
|
||||
@interface NSString : NSObject
|
||||
- (int)length;
|
||||
|
@ -29,10 +24,6 @@ void test2() {
|
|||
@"pointless example call for test purposes".length; // expected-warning {{property access result unused - getters should not have side effects}}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@interface foo
|
||||
- (int)meth: (int)x: (int)y: (int)z ;
|
||||
@end
|
||||
|
@ -42,3 +33,13 @@ void test2() {
|
|||
(int)y: // expected-warning{{unused}}
|
||||
(int) __attribute__((unused))z { return x; }
|
||||
@end
|
||||
|
||||
//===------------------------------------------------------------------------===
|
||||
// The next test shows how clang accepted attribute((unused)) on ObjC
|
||||
// instance variables, which GCC does not.
|
||||
//===------------------------------------------------------------------------===
|
||||
|
||||
@interface TestUnusedIvar {
|
||||
id x __attribute__((unused)); // no-warning
|
||||
}
|
||||
@end
|
||||
|
|
Loading…
Reference in New Issue