[Sema] Emit -Wincomplete-implementation for partial methods.

Fixes rdar://40634455

llvm-svn: 336478
This commit is contained in:
Erik Pilkington 2018-07-07 01:50:20 +00:00
parent d8b0c8ce1b
commit ecce5c9597
2 changed files with 9 additions and 10 deletions

View File

@ -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

View File

@ -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}}