forked from OSchip/llvm-project
[Sema] Emit -Wincomplete-implementation for partial methods.
Fixes rdar://40634455 llvm-svn: 336478
This commit is contained in:
parent
d8b0c8ce1b
commit
ecce5c9597
|
@ -2188,17 +2188,9 @@ static void WarnUndefinedMethod(Sema &S, SourceLocation ImpLoc,
|
|||
unsigned DiagID,
|
||||
NamedDecl *NeededFor = nullptr) {
|
||||
// No point warning no definition of method which is 'unavailable'.
|
||||
switch (method->getAvailability()) {
|
||||
case AR_Available:
|
||||
case AR_Deprecated:
|
||||
break;
|
||||
|
||||
// Don't warn about unavailable or not-yet-introduced methods.
|
||||
case AR_NotYetIntroduced:
|
||||
case AR_Unavailable:
|
||||
if (method->getAvailability() == AR_Unavailable)
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
// FIXME: For now ignore 'IncompleteImpl'.
|
||||
// Previously we grouped all unimplemented methods under a single
|
||||
// warning, but some users strongly voiced that they would prefer
|
||||
|
|
|
@ -13,6 +13,13 @@
|
|||
- Meth {return 0;} // expected-warning {{category is implementing a method which will also be implemented by its primary class}}
|
||||
@end
|
||||
|
||||
// rdar://40634455
|
||||
@interface MyClass
|
||||
-(void)mymeth __attribute__((availability(macos, introduced=100))); // expected-note{{here}}
|
||||
@end
|
||||
@implementation MyClass // expected-warning{{'mymeth' not found}}
|
||||
@end
|
||||
|
||||
#pragma GCC diagnostic ignored "-Wincomplete-implementation"
|
||||
@interface I2
|
||||
- Meth; // expected-note{{method 'Meth' declared here}}
|
||||
|
|
Loading…
Reference in New Issue