clang API Documentation

Classes | Namespaces | Defines | Enumerations | Functions
Type.h File Reference
#include "clang/AST/NestedNameSpecifier.h"
#include "clang/AST/TemplateName.h"
#include "clang/Basic/Diagnostic.h"
#include "clang/Basic/ExceptionSpecificationType.h"
#include "clang/Basic/LLVM.h"
#include "clang/Basic/Linkage.h"
#include "clang/Basic/PartialDiagnostic.h"
#include "clang/Basic/Specifiers.h"
#include "clang/Basic/Visibility.h"
#include "llvm/ADT/APInt.h"
#include "llvm/ADT/FoldingSet.h"
#include "llvm/ADT/iterator_range.h"
#include "llvm/ADT/Optional.h"
#include "llvm/ADT/PointerIntPair.h"
#include "llvm/ADT/PointerUnion.h"
#include "llvm/ADT/Twine.h"
#include "llvm/Support/ErrorHandling.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
struct  clang::SplitQualType
class  clang::QualType
class  clang::QualType::StreamedQualTypeHelper
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::Type::AutoTypeBitfields
class  clang::BuiltinType
class  clang::ComplexType
class  clang::ParenType
class  clang::PointerType
class  clang::AdjustedType
 Represents a type which was implicitly adjusted by the semantic engine for arbitrary reasons. For example, array and function types can decay, and function types can have their calling conventions adjusted. More...
class  clang::DecayedType
 Represents a pointer type decayed from an array or function type. More...
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::ExceptionSpecInfo
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++11 auto or C++1y decltype(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

Enumerations

enum  { clang::TypeAlignmentInBits = 4, clang::TypeAlignment = 1 << TypeAlignmentInBits }
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_Interface, clang::TTK_Union, clang::TTK_Class,
  clang::TTK_Enum
}
 The kind of a tag type. More...
enum  clang::ElaboratedTypeKeyword {
  clang::ETK_Struct, clang::ETK_Interface, 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)
bool clang::IsEnumDeclComplete (EnumDecl *ED)
 Check if the given decl is complete.
bool clang::IsEnumDeclScoped (EnumDecl *ED)
 Check if the given decl is scoped.
const DiagnosticBuilder & clang::operator<< (const DiagnosticBuilder &DB, QualType T)
const PartialDiagnostic & clang::operator<< (const PartialDiagnostic &PD, QualType T)

Define Documentation

#define ABSTRACT_TYPE (   Class,
  Base 
)

Definition at line 1160 of file Type.h.

#define BUILTIN_TYPE (   Id,
  SingletonId 
)    Id,

Definition at line 1842 of file Type.h.

#define LAST_BUILTIN_TYPE (   Id)    LastKind = Id

Definition at line 1843 of file Type.h.

#define LAST_TYPE (   Class)    TypeLast = Class,

Definition at line 1159 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 1827 of file Type.h.

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

Definition at line 1826 of file Type.h.

#define TYPE (   Class,
  Base 
)    Class,

Definition at line 1826 of file Type.h.

#define TYPE (   Class,
  Base 
)

Definition at line 1826 of file Type.h.