LLVM.h revision 226586
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// clang wants to use unqualified.
12//
13//===----------------------------------------------------------------------===//
14
15#ifndef CLANG_BASIC_LLVM_H
16#define CLANG_BASIC_LLVM_H
17
18// This should be the only #include, force #includes of all the others on
19// clients.
20#include "llvm/Support/Casting.h"
21
22namespace llvm {
23  // ADT's.
24  class StringRef;
25  class Twine;
26  template<typename T> class ArrayRef;
27  template<typename T, unsigned N> class SmallVector;
28  template<typename T> class SmallVectorImpl;
29
30  class raw_ostream;
31  // TODO: DenseMap, ...
32}
33
34
35namespace clang {
36  // Casting operators.
37  using llvm::isa;
38  using llvm::cast;
39  using llvm::dyn_cast;
40  using llvm::dyn_cast_or_null;
41  using llvm::cast_or_null;
42
43  // ADT's.
44  using llvm::StringRef;
45  using llvm::Twine;
46  using llvm::ArrayRef;
47  using llvm::SmallVector;
48  using llvm::SmallVectorImpl;
49
50  using llvm::raw_ostream;
51} // end namespace clang.
52
53#endif
54