//===-- Analysis.cpp ------------------------------------------------------===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// #include "llvm-c/Analysis.h" #include "llvm/Analysis/Verifier.h" #include <fstream> #include <cstring> using namespace llvm; int LLVMVerifyModule(LLVMModuleRef M, LLVMVerifierFailureAction Action, char **OutMessages) { std::string Messages; int Result = verifyModule(*unwrap(M), static_cast<VerifierFailureAction>(Action), OutMessages? &Messages : 0); if (OutMessages) *OutMessages = strdup(Messages.c_str()); return Result; } int LLVMVerifyFunction(LLVMValueRef Fn, LLVMVerifierFailureAction Action) { return verifyFunction(*unwrap<Function>(Fn), static_cast<VerifierFailureAction>(Action)); } void LLVMViewFunctionCFG(LLVMValueRef Fn) { Function *F = unwrap<Function>(Fn); F->viewCFG(); } void LLVMViewFunctionCFGOnly(LLVMValueRef Fn) { Function *F = unwrap<Function>(Fn); F->viewCFGOnly(); }