clang API Documentation

Classes | Namespaces | Defines | Typedefs | Enumerations | Functions
Type.h File Reference
#include "clang/Basic/ExceptionSpecificationType.h"
#include "clang/Basic/IdentifierTable.h"
#include "clang/Basic/Linkage.h"
#include "clang/Basic/Visibility.h"
#include "clang/AST/NestedNameSpecifier.h"
#include "clang/AST/TemplateName.h"
#include "llvm/Support/type_traits.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/ADT/APSInt.h"
#include "llvm/ADT/FoldingSet.h"
#include "llvm/ADT/Optional.h"
#include "llvm/ADT/PointerIntPair.h"
#include "llvm/ADT/PointerUnion.h"
#include "clang/Basic/LLVM.h"
#include "clang/AST/TypeNodes.def"
#include "clang/AST/BuiltinTypes.def"
Include dependency graph for Type.h:

Go to the source code of this file.

Classes

class  llvm::PointerLikeTypeTraits< ::clang::Type * >
class  llvm::PointerLikeTypeTraits< ::clang::ExtQuals * >
struct  llvm::isPodLike< clang::QualType >
class  clang::Qualifiers
class  clang::QualType
struct  llvm::simplify_type< const ::clang::QualType >
struct  llvm::simplify_type< ::clang::QualType >
class  llvm::PointerLikeTypeTraits< clang::QualType >
class  clang::ExtQualsTypeCommonBase
 Base class that is common to both the ExtQuals and Type classes, which allows QualType to access the common fields between the two. More...
class  clang::ExtQuals
class  clang::Type
class  clang::Type::TypeBitfields
 Bitfields required by the Type class.
class  clang::Type::ArrayTypeBitfields
class  clang::Type::BuiltinTypeBitfields
class  clang::Type::FunctionTypeBitfields
class  clang::Type::ObjCObjectTypeBitfields
class  clang::Type::ReferenceTypeBitfields
class  clang::Type::TypeWithKeywordBitfields
class  clang::Type::VectorTypeBitfields
class  clang::Type::AttributedTypeBitfields
class  clang::BuiltinType
class  clang::ComplexType
class  clang::ParenType
class  clang::PointerType
class  clang::BlockPointerType
class  clang::ReferenceType
class  clang::LValueReferenceType
class  clang::RValueReferenceType
class  clang::MemberPointerType
class  clang::ArrayType
class  clang::ConstantArrayType
class  clang::IncompleteArrayType
class  clang::VariableArrayType
class  clang::DependentSizedArrayType
class  clang::DependentSizedExtVectorType
class  clang::VectorType
class  clang::ExtVectorType
class  clang::FunctionType
class  clang::FunctionType::ExtInfo
class  clang::FunctionNoProtoType
class  clang::FunctionProtoType
struct  clang::FunctionProtoType::ExtProtoInfo
 ExtProtoInfo - Extra information about a function prototype. More...
class  clang::UnresolvedUsingType
 Represents the dependent type named by a dependently-scoped typename using declaration, e.g. using typename Base<T>::foo; Template instantiation turns these into the underlying type. More...
class  clang::TypedefType
class  clang::TypeOfExprType
 TypeOfExprType (GCC extension). More...
class  clang::DependentTypeOfExprType
 Internal representation of canonical, dependent typeof(expr) types. More...
class  clang::TypeOfType
 TypeOfType (GCC extension). More...
class  clang::DecltypeType
 DecltypeType (C++0x) More...
class  clang::DependentDecltypeType
 Internal representation of canonical, dependent decltype(expr) types. More...
class  clang::UnaryTransformType
 A unary type transform, which is a type constructed from another. More...
class  clang::TagType
class  clang::RecordType
class  clang::EnumType
class  clang::AttributedType
class  clang::TemplateTypeParmType
struct  clang::TemplateTypeParmType::CanonicalTTPTInfo
class  clang::SubstTemplateTypeParmType
 Represents the result of substituting a type for a template type parameter. More...
class  clang::SubstTemplateTypeParmPackType
 Represents the result of substituting a set of types for a template type parameter pack. More...
class  clang::AutoType
 Represents a C++0x auto type. More...
class  clang::TemplateSpecializationType
 Represents a type template specialization; the template must be a class template, a type alias template, or a template template parameter. A template which cannot be resolved to one of these, e.g. because it is written with a dependent scope specifier, is instead represented as a DependentTemplateSpecializationType. More...
class  clang::InjectedClassNameType
 The injected class name of a C++ class template or class template partial specialization. Used to record that a type was spelled with a bare identifier rather than as a template-id; the equivalent for non-templated classes is just RecordType. More...
class  clang::TypeWithKeyword
class  clang::TypeWithKeyword::CannotCastToThisType
class  clang::ElaboratedType
 Represents a type that was referred to using an elaborated type keyword, e.g., struct S, or via a qualified name, e.g., N::M::type, or both. More...
class  clang::DependentNameType
 Represents a qualified type name for which the type name is dependent. More...
class  clang::DependentTemplateSpecializationType
class  clang::PackExpansionType
 Represents a pack expansion of types. More...
class  clang::ObjCObjectType
class  clang::ObjCObjectTypeImpl
class  clang::ObjCInterfaceType
class  clang::ObjCObjectPointerType
class  clang::AtomicType
class  clang::QualifierCollector
 A qualifier set is used to build a set of qualifiers. More...
struct  clang::ArrayType_cannot_be_used_with_getAs< T, isArrayType >

Namespaces

namespace  clang
namespace  llvm

Defines

#define TYPE(Class, Base)   class Class##Type;
#define TYPE(Class, Base)   Class,
#define LAST_TYPE(Class)   TypeLast = Class,
#define ABSTRACT_TYPE(Class, Base)
#define TYPE(Class, Base)
#define LEAF_TYPE(Class)
#define BUILTIN_TYPE(Id, SingletonId)   Id,
#define LAST_BUILTIN_TYPE(Id)   LastKind = Id

Typedefs

typedef std::pair< const Type
*, Qualifiers > 
clang::SplitQualType

Enumerations

enum  { clang::TypeAlignmentInBits = 4, clang::TypeAlignment = 1 << TypeAlignmentInBits }
enum  clang::CallingConv {
  clang::CC_Default, clang::CC_C, clang::CC_X86StdCall, clang::CC_X86FastCall,
  clang::CC_X86ThisCall, clang::CC_X86Pascal, clang::CC_AAPCS, clang::CC_AAPCS_VFP
}
 CallingConv - Specifies the calling convention that a function uses. More...
enum  clang::RefQualifierKind { clang::RQ_None = 0, clang::RQ_LValue, clang::RQ_RValue }
 The kind of C++0x ref-qualifier associated with a function type, which determines whether a member function's "this" object can be an lvalue, rvalue, or neither. More...
enum  clang::TagTypeKind { clang::TTK_Struct, clang::TTK_Union, clang::TTK_Class, clang::TTK_Enum }
 The kind of a tag type. More...
enum  clang::ElaboratedTypeKeyword {
  clang::ETK_Struct, clang::ETK_Union, clang::ETK_Class, clang::ETK_Enum,
  clang::ETK_Typename, clang::ETK_None
}
 The elaboration keyword that precedes a qualified type name or introduces an elaborated-type-specifier. More...

Functions

FunctionType::ExtInfo clang::getFunctionExtInfo (const Type &t)
FunctionType::ExtInfo clang::getFunctionExtInfo (QualType t)
const DiagnosticBuilderclang::operator<< (const DiagnosticBuilder &DB, QualType T)
const PartialDiagnosticclang::operator<< (const PartialDiagnostic &PD, QualType T)

Define Documentation

#define ABSTRACT_TYPE (   Class,
  Base 
)

Definition at line 1060 of file Type.h.

#define BUILTIN_TYPE (   Id,
  SingletonId 
)    Id,

Definition at line 1706 of file Type.h.

#define LAST_BUILTIN_TYPE (   Id)    LastKind = Id

Definition at line 1707 of file Type.h.

#define LAST_TYPE (   Class)    TypeLast = Class,

Definition at line 1059 of file Type.h.

#define LEAF_TYPE (   Class)
Value:
template <> inline const Class##Type *Type::getAs() const { \
  return dyn_cast<Class##Type>(CanonicalType); \
} \
template <> inline const Class##Type *Type::castAs() const { \
  return cast<Class##Type>(CanonicalType); \
}

Definition at line 1691 of file Type.h.

#define TYPE (   Class,
  Base 
)    class Class##Type;

Definition at line 1690 of file Type.h.

#define TYPE (   Class,
  Base 
)    Class,

Definition at line 1690 of file Type.h.

#define TYPE (   Class,
  Base 
)

Definition at line 1690 of file Type.h.