diff options
author | Chris Lattner <sabre@nondot.org> | 2004-04-02 15:44:33 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2004-04-02 15:44:33 +0000 |
commit | b753dd1cb41904e29e10d281f53bd8234e00a9d4 (patch) | |
tree | 4185b62313ef166dcf52244b24fa1dcaa8488600 | |
parent | d186ed02e42b319d3f0caea0561fece7fb2353c4 (diff) | |
download | bcm5719-llvm-b753dd1cb41904e29e10d281f53bd8234e00a9d4.tar.gz bcm5719-llvm-b753dd1cb41904e29e10d281f53bd8234e00a9d4.zip |
Make the verifier API more complete and useful
llvm-svn: 12608
-rw-r--r-- | llvm/include/llvm/Analysis/Verifier.h | 46 |
1 files changed, 36 insertions, 10 deletions
diff --git a/llvm/include/llvm/Analysis/Verifier.h b/llvm/include/llvm/Analysis/Verifier.h index 51da3a5eae4..63ce6ce6c91 100644 --- a/llvm/include/llvm/Analysis/Verifier.h +++ b/llvm/include/llvm/Analysis/Verifier.h @@ -27,20 +27,46 @@ class FunctionPass; class Module; class Function; -// createVerifierPass - Check a module or function for validity. If errors are -// detected, error messages corresponding to the problem are printed to stderr. -// -FunctionPass *createVerifierPass(); +/// @brief An enumeration to specify the action to be taken if errors found. +/// +/// This enumeration is used in the functions below to indicate what should +/// happen if the verifier finds errors. Each of the functions that uses +/// this enumeration as an argument provides a default value for it. The +/// actions are listed below. +enum VerifierFailureAction { + AbortProcessAction, ///< verifyModule will print to stderr and abort() + ThrowExceptionAction, ///< verifyModule will throw errors as std::string + PrintMessageAction, ///< verifyModule will print to stderr and return true + ReturnStatusAction ///< verifyModule will just return true +}; -// verifyModule - Check a module for errors, printing messages on stderr. -// Return true if the module is corrupt. This should only be used for -// debugging, because it plays games with PassManagers and stuff. -// -bool verifyModule(const Module &M); +/// @brief Create a verifier pass. +/// +/// Check a module or function for validity. When the pass is used, the +/// action indicated by the \p action argument will be used if errors are +/// found. +FunctionPass *createVerifierPass( + VerifierFailureAction action = AbortProcessAction ///< Action to take +); + +/// @brief Check a module for errors. +/// +/// If there are no errors, the function returns false. If an error is found, +/// the action taken depends on the \p action parameter. +/// This should only be used for debugging, because it plays games with +/// PassManagers and stuff. + +bool verifyModule( + const Module &M, ///< The module to be verified + VerifierFailureAction action = AbortProcessAction ///< Action to take +); // verifyFunction - Check a function for errors, useful for use when debugging a // pass. -bool verifyFunction(const Function &F); +bool verifyFunction( + const Function &F, ///< The function to be verified + VerifierFailureAction action = AbortProcessAction ///< Action to take +); } // End llvm namespace |