~ubuntu-branches/debian/sid/clamav/sid

« back to all changes in this revision

Viewing changes to libclamav/c++/llvm/include/llvm/LLVMContext.h

  • Committer: Package Import Robot
  • Author(s): Andreas Cadhalpun, Andreas Cadhalpun, Sebastian Andrzej Siewior, Frans Spiesschaert
  • Date: 2014-10-15 06:50:20 UTC
  • mfrom: (1.3.13) (42.1.4 experimental)
  • Revision ID: package-import@ubuntu.com-20141015065020-0cpy1hdueggaw35s
Tags: 0.98.5~rc1+dfsg-1
[ Andreas Cadhalpun ]
* Import new upstream release candidate.
* Drop patches included upstream and update the others.
* Add 4 new symbols to libclamav6.symbols.
* Fix debian/copyright.
* Update lintian overrides.
* Update Standards-Version to 3.9.6 (no changes needed).
* Add Breaks and Replaces for old clamd package to clamdscan.
* Remove unnecessary shlibs:Depends from clamav-dbg.
* Add patches to support LLVM 3.5.

[ Sebastian Andrzej Siewior ]
* Add embedded copy of libmspack to be used as fallback, when libmspack-dev
  is not available.

[ Frans Spiesschaert ]
* Updated Dutch Debconf template translation (Closes: #763634)

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
//===-- llvm/LLVMContext.h - Class for managing "global" state --*- 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 declares LLVMContext, a container of "global" state in LLVM, such
11
 
// as the global type and constant uniquing tables.
12
 
//
13
 
//===----------------------------------------------------------------------===//
14
 
 
15
 
#ifndef LLVM_LLVMCONTEXT_H
16
 
#define LLVM_LLVMCONTEXT_H
17
 
 
18
 
namespace llvm {
19
 
 
20
 
class LLVMContextImpl;
21
 
class StringRef;
22
 
class Instruction;
23
 
template <typename T> class SmallVectorImpl;
24
 
 
25
 
/// This is an important class for using LLVM in a threaded context.  It
26
 
/// (opaquely) owns and manages the core "global" data of LLVM's core 
27
 
/// infrastructure, including the type and constant uniquing tables.
28
 
/// LLVMContext itself provides no locking guarantees, so you should be careful
29
 
/// to have one context per thread.
30
 
class LLVMContext {
31
 
  // DO NOT IMPLEMENT
32
 
  LLVMContext(LLVMContext&);
33
 
  void operator=(LLVMContext&);
34
 
 
35
 
public:
36
 
  LLVMContextImpl *const pImpl;
37
 
  LLVMContext();
38
 
  ~LLVMContext();
39
 
  
40
 
  // Pinned metadata names, which always have the same value.  This is a
41
 
  // compile-time performance optimization, not a correctness optimization.
42
 
  enum {
43
 
    MD_dbg = 0   // "dbg"
44
 
  };
45
 
  
46
 
  /// getMDKindID - Return a unique non-zero ID for the specified metadata kind.
47
 
  /// This ID is uniqued across modules in the current LLVMContext.
48
 
  unsigned getMDKindID(StringRef Name) const;
49
 
  
50
 
  /// getMDKindNames - Populate client supplied SmallVector with the name for
51
 
  /// custom metadata IDs registered in this LLVMContext.
52
 
  void getMDKindNames(SmallVectorImpl<StringRef> &Result) const;
53
 
  
54
 
  /// setInlineAsmDiagnosticHandler - This method sets a handler that is invoked
55
 
  /// when problems with inline asm are detected by the backend.  The first
56
 
  /// argument is a function pointer (of type SourceMgr::DiagHandlerTy) and the
57
 
  /// second is a context pointer that gets passed into the DiagHandler.
58
 
  ///
59
 
  /// LLVMContext doesn't take ownership or interpreter either of these
60
 
  /// pointers.
61
 
  void setInlineAsmDiagnosticHandler(void *DiagHandler, void *DiagContext = 0);
62
 
 
63
 
  /// getInlineAsmDiagnosticHandler - Return the diagnostic handler set by
64
 
  /// setInlineAsmDiagnosticHandler.
65
 
  void *getInlineAsmDiagnosticHandler() const;
66
 
 
67
 
  /// getInlineAsmDiagnosticContext - Return the diagnostic context set by
68
 
  /// setInlineAsmDiagnosticHandler.
69
 
  void *getInlineAsmDiagnosticContext() const;
70
 
  
71
 
  
72
 
  /// emitError - Emit an error message to the currently installed error handler
73
 
  /// with optional location information.  This function returns, so code should
74
 
  /// be prepared to drop the erroneous construct on the floor and "not crash".
75
 
  /// The generated code need not be correct.  The error message will be
76
 
  /// implicitly prefixed with "error: " and should not end with a ".".
77
 
  void emitError(unsigned LocCookie, StringRef ErrorStr);
78
 
  void emitError(const Instruction *I, StringRef ErrorStr);
79
 
  void emitError(StringRef ErrorStr);
80
 
};
81
 
 
82
 
/// getGlobalContext - Returns a global context.  This is for LLVM clients that
83
 
/// only care about operating on a single thread.
84
 
extern LLVMContext &getGlobalContext();
85
 
 
86
 
}
87
 
 
88
 
#endif