class MacroUsageCallbacks : public PPCallbacks {
public:
MacroUsageCallbacks(MacroUsageCheck *Check, const SourceManager &SM,
- StringRef RegExp, bool CapsOnly, bool IgnoreCommandLine)
- : Check(Check), SM(SM), RegExp(RegExp), CheckCapsOnly(CapsOnly),
+ StringRef RegExpStr, bool CapsOnly, bool IgnoreCommandLine)
+ : Check(Check), SM(SM), RegExp(RegExpStr), CheckCapsOnly(CapsOnly),
IgnoreCommandLineMacros(IgnoreCommandLine) {}
void MacroDefined(const Token &MacroNameTok,
const MacroDirective *MD) override {
return;
StringRef MacroName = MacroNameTok.getIdentifierInfo()->getName();
- if (!CheckCapsOnly && !llvm::Regex(RegExp).match(MacroName))
+ if (!CheckCapsOnly && !RegExp.match(MacroName))
Check->warnMacro(MD, MacroName);
if (CheckCapsOnly && !isCapsOnly(MacroName))
private:
MacroUsageCheck *Check;
const SourceManager &SM;
- StringRef RegExp;
+ const llvm::Regex RegExp;
bool CheckCapsOnly;
bool IgnoreCommandLineMacros;
};