1//===-- llvm/Analysis/Lint.h - LLVM IR Lint ---------------------*- C++ -*-===// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file is distributed under the University of Illinois Open Source 6// License. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// 9// 10// This file defines lint interfaces that can be used for some sanity checking 11// of input to the system, and for checking that transformations 12// haven't done something bad. In contrast to the Verifier, the Lint checker 13// checks for undefined behavior or constructions with likely unintended 14// behavior. 15// 16// To see what specifically is checked, look at Lint.cpp 17// 18//===----------------------------------------------------------------------===// 19 20#ifndef LLVM_ANALYSIS_LINT_H 21#define LLVM_ANALYSIS_LINT_H 22 23namespace llvm { 24 25class FunctionPass; 26class Module; 27class Function; 28 29/// @brief Create a lint pass. 30/// 31/// Check a module or function. 32FunctionPass *createLintPass(); 33 34/// @brief Check a module. 35/// 36/// This should only be used for debugging, because it plays games with 37/// PassManagers and stuff. 38void lintModule( 39 const Module &M ///< The module to be checked 40); 41 42// lintFunction - Check a function. 43void lintFunction( 44 const Function &F ///< The function to be checked 45); 46 47} // End llvm namespace 48 49#endif 50