tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

BaseCheck.h (1096B)


      1 /* This Source Code Form is subject to the terms of the Mozilla Public
      2 * License, v. 2.0. If a copy of the MPL was not distributed with this
      3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
      4 
      5 #ifndef BaseCheck_h__
      6 #define BaseCheck_h__
      7 
      8 class MozContext {};
      9 typedef MozContext ContextType;
     10 
     11 class BaseCheck : public MatchFinder::MatchCallback {
     12 public:
     13  BaseCheck(StringRef CheckName, ContextType *Context) {}
     14  virtual void registerMatchers(MatchFinder *Finder) {}
     15  virtual void registerPPCallbacks(CompilerInstance &CI) {}
     16  virtual void check(const MatchFinder::MatchResult &Result) {}
     17  DiagnosticBuilder diag(SourceLocation Loc, StringRef Description,
     18                         DiagnosticIDs::Level Level = DiagnosticIDs::Warning) {
     19    DiagnosticsEngine &Diag = Context->getDiagnostics();
     20    unsigned ID = Diag.getDiagnosticIDs()->getCustomDiagID(Level, Description);
     21    return Diag.Report(Loc, ID);
     22  }
     23 
     24 private:
     25  void run(const MatchFinder::MatchResult &Result) override {
     26    Context = Result.Context;
     27    check(Result);
     28  }
     29 
     30 private:
     31  ASTContext *Context;
     32 };
     33 
     34 #endif