Coverage Report

Created: 2017-10-03 07:32

/Users/buildslave/jenkins/sharedspace/clang-stage2-coverage-R@2/llvm/tools/lld/include/lld/Core/LLVM.h
Line
Count
Source
1
//===--- LLVM.h - Import various common LLVM datatypes ----------*- 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 forward declares and imports various common LLVM datatypes that
11
// lld wants to use unqualified.
12
//
13
//===----------------------------------------------------------------------===//
14
15
#ifndef LLD_CORE_LLVM_H
16
#define LLD_CORE_LLVM_H
17
18
// This should be the only #include, force #includes of all the others on
19
// clients.
20
#include "llvm/ADT/Hashing.h"
21
#include "llvm/Support/Casting.h"
22
#include <utility>
23
24
namespace llvm {
25
  // ADT's.
26
  class Error;
27
  class StringRef;
28
  class Twine;
29
  class MemoryBuffer;
30
  class MemoryBufferRef;
31
  template<typename T> class ArrayRef;
32
  template<unsigned InternalLen> class SmallString;
33
  template<typename T, unsigned N> class SmallVector;
34
  template<typename T> class SmallVectorImpl;
35
36
  template<typename T>
37
  struct SaveAndRestore;
38
39
  template<typename T>
40
  class ErrorOr;
41
42
  template<typename T>
43
  class Expected;
44
45
  class raw_ostream;
46
  // TODO: DenseMap, ...
47
}
48
49
namespace lld {
50
  // Casting operators.
51
  using llvm::isa;
52
  using llvm::cast;
53
  using llvm::dyn_cast;
54
  using llvm::dyn_cast_or_null;
55
  using llvm::cast_or_null;
56
57
  // ADT's.
58
  using llvm::Error;
59
  using llvm::StringRef;
60
  using llvm::Twine;
61
  using llvm::MemoryBuffer;
62
  using llvm::MemoryBufferRef;
63
  using llvm::ArrayRef;
64
  using llvm::SmallString;
65
  using llvm::SmallVector;
66
  using llvm::SmallVectorImpl;
67
  using llvm::SaveAndRestore;
68
  using llvm::ErrorOr;
69
  using llvm::Expected;
70
71
  using llvm::raw_ostream;
72
} // end namespace lld.
73
74
namespace std {
75
template <> struct hash<llvm::StringRef> {
76
public:
77
343
  size_t operator()(const llvm::StringRef &s) const {
78
343
    return llvm::hash_value(s);
79
343
  }
80
};
81
}
82
83
#endif