X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=include%2Fllvm%2FIR%2FVerifier.h;h=89039d24195eeacde8e7fb4f7179bff9136aac30;hb=bd75a9292e761dcab32855e322d9985d7d787d1e;hp=f5d8945ea063a5008405e3fdb167b0eb9673480f;hpb=e608d695de5c8b8de80041d9b654f42b1d7fb893;p=oota-llvm.git diff --git a/include/llvm/IR/Verifier.h b/include/llvm/IR/Verifier.h index f5d8945ea06..89039d24195 100644 --- a/include/llvm/IR/Verifier.h +++ b/include/llvm/IR/Verifier.h @@ -21,29 +21,32 @@ #ifndef LLVM_IR_VERIFIER_H #define LLVM_IR_VERIFIER_H +#include "llvm/ADT/StringRef.h" #include namespace llvm { +class Function; class FunctionPass; +class ModulePass; class Module; -class Function; +class PreservedAnalyses; class raw_ostream; /// \brief Check a function for errors, useful for use when debugging a /// pass. /// /// If there are no errors, the function returns false. If an error is found, -/// a message describing the error is written to OS (if non-null) and false is +/// a message describing the error is written to OS (if non-null) and true is /// returned. -bool verifyFunction(const Function &F, raw_ostream *OS = 0); +bool verifyFunction(const Function &F, raw_ostream *OS = nullptr); /// \brief Check a module for errors. /// /// If there are no errors, the function returns false. If an error is found, -/// a message describing the error is written to OS (if non-null) and false is +/// a message describing the error is written to OS (if non-null) and true is /// returned. -bool verifyModule(const Module &M, raw_ostream *OS = 0); +bool verifyModule(const Module &M, raw_ostream *OS = nullptr); /// \brief Create a verifier pass. /// @@ -52,8 +55,23 @@ bool verifyModule(const Module &M, raw_ostream *OS = 0); /// functionality. When the pass detects a verification error it is always /// printed to stderr, and by default they are fatal. You can override that by /// passing \c false to \p FatalErrors. +/// +/// Note that this creates a pass suitable for the legacy pass manager. It has +/// nothing to do with \c VerifierPass. FunctionPass *createVerifierPass(bool FatalErrors = true); +class VerifierPass { + bool FatalErrors; + +public: + explicit VerifierPass(bool FatalErrors = true) : FatalErrors(FatalErrors) {} + + PreservedAnalyses run(Module &M); + PreservedAnalyses run(Function &F); + + static StringRef name() { return "VerifierPass"; } +}; + } // End llvm namespace #endif