clang  3.7.0
Classes | Namespaces | Macros | Enumerations | Functions
Type.h File Reference
#include "clang/AST/NestedNameSpecifier.h"
#include "clang/AST/TemplateName.h"
#include "clang/Basic/AddressSpaces.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/Optional.h"
#include "llvm/ADT/PointerIntPair.h"
#include "llvm/ADT/PointerUnion.h"
#include "llvm/ADT/Twine.h"
#include "llvm/ADT/iterator_range.h"
#include "llvm/Support/ErrorHandling.h"
#include "clang/AST/TypeNodes.def"
#include "clang/AST/BuiltinTypes.def"
Include dependency graph for Type.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  llvm::PointerLikeTypeTraits< T >
 
class  llvm::PointerLikeTypeTraits< ::clang::Type * >
 
class  llvm::PointerLikeTypeTraits< ::clang::ExtQuals * >
 
struct  llvm::isPodLike< clang::QualType >
 
class  clang::CanQual< T >
 Represents a canonical, potentially-qualified type. More...
 
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::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
 
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

 clang
 
 llvm
 

Macros

#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::ObjCSubstitutionContext {
  clang::ObjCSubstitutionContext::Ordinary, clang::ObjCSubstitutionContext::Result, clang::ObjCSubstitutionContext::Parameter, clang::ObjCSubstitutionContext::Property,
  clang::ObjCSubstitutionContext::Superclass
}
 
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. More...
 
bool clang::IsEnumDeclScoped (EnumDecl *ED)
 Check if the given decl is scoped. More...
 
const DiagnosticBuilder & clang::operator<< (const DiagnosticBuilder &DB, QualType T)
 
const PartialDiagnostic & clang::operator<< (const PartialDiagnostic &PD, QualType T)
 

Macro Definition Documentation

#define ABSTRACT_TYPE (   Class,
  Base 
)

Definition at line 1239 of file Type.h.

#define BUILTIN_TYPE (   Id,
  SingletonId 
)    Id,

Definition at line 1992 of file Type.h.

#define LAST_BUILTIN_TYPE (   Id)    LastKind = Id

Definition at line 1993 of file Type.h.

#define LAST_TYPE (   Class)    TypeLast = Class,

Definition at line 1238 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); \
}
return(x >> y)|(x<< (32-y))

Definition at line 1977 of file Type.h.

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

Definition at line 1976 of file Type.h.

#define TYPE (   Class,
  Base 
)    Class,

Definition at line 1976 of file Type.h.

#define TYPE (   Class,
  Base 
)

Definition at line 1976 of file Type.h.