mirror of
				https://github.com/c64scene-ar/llvm-6502.git
				synced 2025-11-04 05:17:07 +00:00 
			
		
		
		
	git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100783 91177308-0d34-0410-b5e6-96231b3b80d8
		
			
				
	
	
		
			76 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			76 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
//===-- llvm/Analysis/Verifier.h - LLVM IR Verifier -------------*- C++ -*-===//
 | 
						|
//
 | 
						|
//                     The LLVM Compiler Infrastructure
 | 
						|
//
 | 
						|
// This file is distributed under the University of Illinois Open Source
 | 
						|
// License. See LICENSE.TXT for details.
 | 
						|
//
 | 
						|
//===----------------------------------------------------------------------===//
 | 
						|
//
 | 
						|
// This file defines the function verifier interface, that can be used for some
 | 
						|
// sanity checking of input to the system, and for checking that transformations
 | 
						|
// haven't done something bad.
 | 
						|
//
 | 
						|
// Note that this does not provide full 'java style' security and verifications,
 | 
						|
// instead it just tries to ensure that code is well formed.
 | 
						|
//
 | 
						|
// To see what specifically is checked, look at the top of Verifier.cpp
 | 
						|
//
 | 
						|
//===----------------------------------------------------------------------===//
 | 
						|
 | 
						|
#ifndef LLVM_ANALYSIS_VERIFIER_H
 | 
						|
#define LLVM_ANALYSIS_VERIFIER_H
 | 
						|
 | 
						|
#include <string>
 | 
						|
 | 
						|
namespace llvm {
 | 
						|
 | 
						|
class FunctionPass;
 | 
						|
class Module;
 | 
						|
class Function;
 | 
						|
 | 
						|
/// @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()
 | 
						|
  PrintMessageAction,   ///< verifyModule will print to stderr and return true
 | 
						|
  ReturnStatusAction    ///< verifyModule will just return true
 | 
						|
};
 | 
						|
 | 
						|
/// @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
 | 
						|
  std::string *ErrorInfo = 0      ///< Information about failures.
 | 
						|
);
 | 
						|
 | 
						|
// verifyFunction - Check a function for errors, useful for use when debugging a
 | 
						|
// pass.
 | 
						|
bool verifyFunction(
 | 
						|
  const Function &F,  ///< The function to be verified
 | 
						|
  VerifierFailureAction action = AbortProcessAction ///< Action to take
 | 
						|
);
 | 
						|
 | 
						|
} // End llvm namespace
 | 
						|
 | 
						|
#endif
 |