blob: 6b741bc5bdfcdb7369855e5393e212980331b7ad [file] [log] [blame]
Gordon Henriksen3ed72362007-10-06 21:00:36 +00001//===-- Analysis.cpp ------------------------------------------------------===//
2//
3// The LLVM Compiler Infrastructure
4//
Chris Lattner081ce942007-12-29 20:36:04 +00005// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
Gordon Henriksen3ed72362007-10-06 21:00:36 +00007//
8//===----------------------------------------------------------------------===//
9
10#include "llvm-c/Analysis.h"
11#include "llvm/Analysis/Verifier.h"
12#include <fstream>
Anton Korobeynikov357a27d2008-02-20 11:08:44 +000013#include <cstring>
Gordon Henriksen3ed72362007-10-06 21:00:36 +000014
15using namespace llvm;
16
17int LLVMVerifyModule(LLVMModuleRef M, LLVMVerifierFailureAction Action,
18 char **OutMessages) {
19 std::string Messages;
20
21 int Result = verifyModule(*unwrap(M),
22 static_cast<VerifierFailureAction>(Action),
23 OutMessages? &Messages : 0);
24
25 if (OutMessages)
26 *OutMessages = strdup(Messages.c_str());
27
28 return Result;
29}
30
Gordon Henriksen3ed72362007-10-06 21:00:36 +000031int LLVMVerifyFunction(LLVMValueRef Fn, LLVMVerifierFailureAction Action) {
32 return verifyFunction(*unwrap<Function>(Fn),
33 static_cast<VerifierFailureAction>(Action));
34}
35