objective-C: clang, following gcc, warns on

use of stand-alone protocol as type and uses
id<proto>. Modify warning to say what compiler 
is doing. // rdar//13158394

llvm-svn: 176303
This commit is contained in:
Fariborz Jahanian
2013-02-28 22:36:31 +00:00
parent 7e0db2a24b
commit d838bba59b
4 changed files with 6 additions and 6 deletions

View File

@@ -363,7 +363,7 @@ def note_objc_container_start : Note<
"%select{class|protocol|category|class extension|implementation"
"|category implementation}0 started here">;
def warn_objc_protocol_qualifier_missing_id : Warning<
"protocol qualifiers without 'id' is archaic">;
"property has no object type specified; defaults to qualified 'id'">;
def err_objc_unknown_at : Error<"expected an Objective-C directive after '@'">;
def err_illegal_super_cast : Error<
"cannot cast 'super' (it isn't an expression)">;

View File

@@ -11,7 +11,7 @@
@protocol X;
void foo() {
<X> *P; // expected-warning{{protocol qualifiers without 'id' is archaic}}
<X> *P; // expected-warning{{property has no object type specified; defaults to qualified 'id'}}
}
@class A;

View File

@@ -5,7 +5,7 @@
// bogus 'archaic' warnings with bad location info.
@protocol <#protocol name#> <NSObject> // expected-error 2{{expected identifier}} \
// expected-error{{cannot find protocol declaration for 'NSObject'}} \
// expected-warning{{protocol qualifiers without 'id'}}
// expected-warning{{property has no object type specified; defaults to qualified 'id'}}
<#methods#> // expected-error{{expected identifier}}

View File

@@ -8,9 +8,9 @@
void bar();
void foo(id x) {
bar((short<SomeProtocol>)x); // expected-error {{expected ')'}} expected-note {{to match this '('}}
bar((<SomeProtocol>)x); // expected-warning {{protocol qualifiers without 'id' is archaic}}
bar((<SomeProtocol>)x); // expected-warning {{property has no object type specified; defaults to qualified 'id'}}
[(<SomeProtocol>)x bar]; // expected-warning {{protocol qualifiers without 'id' is archaic}}
[(<SomeProtocol>)x bar]; // expected-warning {{property has no object type specified; defaults to qualified 'id'}}
}
@protocol MyProtocol
@@ -37,6 +37,6 @@ Class <SomeProtocol> UnfortunateGCCExtension;
@protocol Broken @end
@interface Crash @end
@implementation Crash
- (void)crashWith:(<Broken>)a { // expected-warning {{protocol qualifiers without 'id' is archaic}}
- (void)crashWith:(<Broken>)a { // expected-warning {{property has no object type specified; defaults to qualified 'id'}}
}
@end