erik.pilkington added inline comments.
================ Comment at: lib/Sema/SemaDeclAttr.cpp:7374-7378 + (MD->isDefined() || + (MD->getClassInterface() && + MD->getClassInterface()->getSuperClass() && + MD->getClassInterface()->getSuperClass()->lookupMethod( + MD->getSelector(), MD->isInstanceMethod())))) ---------------- Why not just always accept a use of an unavailable method so long as its declared in the interface? i.e., doesn't it make sense to accept something like the following? It seems like you're going out of your way to reject it though: ``` @interface Base -(void)doAThing; -(void)doAThingImpl __attribute__((unavailable)); @end @implemenation Base -(void)doAThing { [self doAThingImpl]; } @end @interface Derived1 : Base @end @interface Derived2 : Base @end @implementation Derived1 -(void)doAThingImpl { ... } @end @implementation Derived2 -(void)doAThingImpl { ... } @end ``` Repository: rC Clang CHANGES SINCE LAST ACTION https://reviews.llvm.org/D56816/new/ https://reviews.llvm.org/D56816 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits