clang API Documentation

LLVM.h
Go to the documentation of this file.
00001 //===--- LLVM.h - Import various common LLVM datatypes ----------*- C++ -*-===//
00002 //
00003 //                     The LLVM Compiler Infrastructure
00004 //
00005 // This file is distributed under the University of Illinois Open Source
00006 // License. See LICENSE.TXT for details.
00007 //
00008 //===----------------------------------------------------------------------===//
00009 //
00010 // This file forward declares and imports various common LLVM datatypes that
00011 // clang wants to use unqualified.
00012 //
00013 //===----------------------------------------------------------------------===//
00014 
00015 #ifndef CLANG_BASIC_LLVM_H
00016 #define CLANG_BASIC_LLVM_H
00017 
00018 // This should be the only #include, force #includes of all the others on
00019 // clients.
00020 #include "llvm/Support/Casting.h"
00021 
00022 namespace llvm {
00023   // ADT's.
00024   class StringRef;
00025   class Twine;
00026   template<typename T> class ArrayRef;
00027   template<class T> class OwningPtr;
00028   template<unsigned InternalLen> class SmallString;
00029   template<typename T, unsigned N> class SmallVector;
00030   template<typename T> class SmallVectorImpl;
00031 
00032   template<typename T>
00033   struct SaveAndRestore;
00034 
00035   // Reference counting.
00036   template <typename T> class IntrusiveRefCntPtr;
00037   template <typename T> struct IntrusiveRefCntPtrInfo;
00038   template <class Derived> class RefCountedBase;
00039   class RefCountedBaseVPTR;
00040 
00041   class raw_ostream;
00042   // TODO: DenseMap, ...
00043 }
00044 
00045 
00046 namespace clang {
00047   // Casting operators.
00048   using llvm::isa;
00049   using llvm::cast;
00050   using llvm::dyn_cast;
00051   using llvm::dyn_cast_or_null;
00052   using llvm::cast_or_null;
00053   
00054   // ADT's.
00055   using llvm::StringRef;
00056   using llvm::Twine;
00057   using llvm::ArrayRef;
00058   using llvm::OwningPtr;
00059   using llvm::SmallString;
00060   using llvm::SmallVector;
00061   using llvm::SmallVectorImpl;
00062   using llvm::SaveAndRestore;
00063 
00064   // Reference counting.
00065   using llvm::IntrusiveRefCntPtr;
00066   using llvm::IntrusiveRefCntPtrInfo;
00067   using llvm::RefCountedBase;
00068   using llvm::RefCountedBaseVPTR;
00069 
00070   using llvm::raw_ostream;
00071 } // end namespace clang.
00072 
00073 #endif