in my last patch, suggested by Argyrios.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173182
91177308-0d34-0410-b5e6-
96231b3b80d8
/// \brief id<NSCopying> type.
QualType QIDNSCopying;
+ /// \brief will hold 'respondsToSelector:'
+ Selector RespondsToSelectorSel;
+
/// A flag to remember whether the implicit forms of operator new and delete
/// have been declared.
bool GlobalNewDeleteDeclared;
MultiExprArg Args) {
if (!Receiver)
return ExprError();
- IdentifierInfo *SelectorId = &Context.Idents.get("respondsToSelector");
- if (Sel == Context.Selectors.getUnarySelector(SelectorId))
+
+ if (RespondsToSelectorSel.isNull()) {
+ IdentifierInfo *SelectorId = &Context.Idents.get("respondsToSelector");
+ RespondsToSelectorSel = Context.Selectors.getUnarySelector(SelectorId);
+ }
+ if (Sel == RespondsToSelectorSel)
RemoveSelectorFromWarningCache(*this, Args[0]);
return BuildInstanceMessage(Receiver, Receiver->getType(),