~ubuntu-branches/ubuntu/feisty/clamav/feisty

« back to all changes in this revision

Viewing changes to libclamav/c++/llvm/include/llvm-c/Analysis.h

  • Committer: Bazaar Package Importer
  • Author(s): Kees Cook
  • Date: 2007-02-20 10:33:44 UTC
  • mto: This revision was merged to the branch mainline in revision 16.
  • Revision ID: james.westby@ubuntu.com-20070220103344-zgcu2psnx9d98fpa
Tags: upstream-0.90
ImportĀ upstreamĀ versionĀ 0.90

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*===-- llvm-c/Analysis.h - Analysis Library C Interface --------*- 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 header declares the C interface to libLLVMAnalysis.a, which           *|
11
 
|* implements various analyses of the LLVM IR.                                *|
12
 
|*                                                                            *|
13
 
|* Many exotic languages can interoperate with C code but have a harder time  *|
14
 
|* with C++ due to name mangling. So in addition to C, this interface enables *|
15
 
|* tools written in such languages.                                           *|
16
 
|*                                                                            *|
17
 
\*===----------------------------------------------------------------------===*/
18
 
 
19
 
#ifndef LLVM_C_ANALYSIS_H
20
 
#define LLVM_C_ANALYSIS_H
21
 
 
22
 
#include "llvm-c/Core.h"
23
 
 
24
 
#ifdef __cplusplus
25
 
extern "C" {
26
 
#endif
27
 
 
28
 
 
29
 
typedef enum {
30
 
  LLVMAbortProcessAction, /* verifier will print to stderr and abort() */
31
 
  LLVMPrintMessageAction, /* verifier will print to stderr and return 1 */
32
 
  LLVMReturnStatusAction  /* verifier will just return 1 */
33
 
} LLVMVerifierFailureAction;
34
 
 
35
 
 
36
 
/* Verifies that a module is valid, taking the specified action if not.
37
 
   Optionally returns a human-readable description of any invalid constructs.
38
 
   OutMessage must be disposed with LLVMDisposeMessage. */
39
 
LLVMBool LLVMVerifyModule(LLVMModuleRef M, LLVMVerifierFailureAction Action,
40
 
                          char **OutMessage);
41
 
 
42
 
/* Verifies that a single function is valid, taking the specified action. Useful
43
 
   for debugging. */
44
 
LLVMBool LLVMVerifyFunction(LLVMValueRef Fn, LLVMVerifierFailureAction Action);
45
 
 
46
 
/* Open up a ghostview window that displays the CFG of the current function.
47
 
   Useful for debugging. */
48
 
void LLVMViewFunctionCFG(LLVMValueRef Fn);
49
 
void LLVMViewFunctionCFGOnly(LLVMValueRef Fn);
50
 
 
51
 
#ifdef __cplusplus
52
 
}
53
 
#endif
54
 
 
55
 
#endif