#include #include #include #include #include "clang/AST/TypeNodes.inc" #include "clang/Basic/WebAssemblyReferenceTypes.def" #include "clang/Basic/HLSLIntangibleTypes.def" #include "clang/Basic/AArch64SVEACLETypes.def" #include "clang/Basic/RISCVVTypes.def" #include "clang/Basic/OpenCLImageTypes.def" #include "clang/Basic/OpenCLExtensionTypes.def" #include "clang/Basic/PPCTypes.def" #include "clang/Basic/AMDGPUTypes.def" #include "clang/AST/BuiltinTypes.def"">

clang: lib/AST/Type.cpp File Reference (original) (raw)

#include "[clang/AST/Type.h](Type%5F8h%5Fsource.html)"
#include "[Linkage.h](lib%5F2AST%5F2Linkage%5F8h%5Fsource.html)"
#include "[clang/AST/ASTContext.h](ASTContext%5F8h%5Fsource.html)"
#include "[clang/AST/Attr.h](AST%5F2Attr%5F8h%5Fsource.html)"
#include "[clang/AST/CharUnits.h](CharUnits%5F8h%5Fsource.html)"
#include "[clang/AST/Decl.h](Decl%5F8h%5Fsource.html)"
#include "[clang/AST/DeclBase.h](DeclBase%5F8h%5Fsource.html)"
#include "[clang/AST/DeclCXX.h](DeclCXX%5F8h%5Fsource.html)"
#include "[clang/AST/DeclFriend.h](DeclFriend%5F8h%5Fsource.html)"
#include "[clang/AST/DeclObjC.h](DeclObjC%5F8h%5Fsource.html)"
#include "[clang/AST/DeclTemplate.h](DeclTemplate%5F8h%5Fsource.html)"
#include "[clang/AST/DependenceFlags.h](DependenceFlags%5F8h%5Fsource.html)"
#include "[clang/AST/Expr.h](Expr%5F8h%5Fsource.html)"
#include "[clang/AST/NestedNameSpecifier.h](NestedNameSpecifier%5F8h%5Fsource.html)"
#include "[clang/AST/PrettyPrinter.h](PrettyPrinter%5F8h%5Fsource.html)"
#include "[clang/AST/TemplateBase.h](TemplateBase%5F8h%5Fsource.html)"
#include "[clang/AST/TemplateName.h](TemplateName%5F8h%5Fsource.html)"
#include "[clang/AST/TypeVisitor.h](TypeVisitor%5F8h%5Fsource.html)"
#include "[clang/Basic/AddressSpaces.h](AddressSpaces%5F8h%5Fsource.html)"
#include "[clang/Basic/ExceptionSpecificationType.h](ExceptionSpecificationType%5F8h%5Fsource.html)"
#include "[clang/Basic/IdentifierTable.h](IdentifierTable%5F8h%5Fsource.html)"
#include "[clang/Basic/LLVM.h](LLVM%5F8h%5Fsource.html)"
#include "[clang/Basic/LangOptions.h](LangOptions%5F8h%5Fsource.html)"
#include "[clang/Basic/Linkage.h](include%5F2clang%5F2Basic%5F2Linkage%5F8h%5Fsource.html)"
#include "[clang/Basic/Specifiers.h](Specifiers%5F8h%5Fsource.html)"
#include "[clang/Basic/TargetCXXABI.h](TargetCXXABI%5F8h%5Fsource.html)"
#include "[clang/Basic/TargetInfo.h](include%5F2clang%5F2Basic%5F2TargetInfo%5F8h%5Fsource.html)"
#include "[clang/Basic/Visibility.h](Visibility%5F8h%5Fsource.html)"
#include "llvm/ADT/APInt.h"
#include "llvm/ADT/APSInt.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/FoldingSet.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/MathExtras.h"
#include <algorithm>
#include <cassert>
#include <cstdint>
#include <cstring>
#include <optional>
#include "clang/AST/TypeNodes.inc"
#include "clang/Basic/WebAssemblyReferenceTypes.def"
#include "clang/Basic/HLSLIntangibleTypes.def"
#include "clang/Basic/AArch64SVEACLETypes.def"
#include "clang/Basic/RISCVVTypes.def"
#include "clang/Basic/OpenCLImageTypes.def"
#include "clang/Basic/OpenCLExtensionTypes.def"
#include "clang/Basic/PPCTypes.def"
#include "clang/Basic/AMDGPUTypes.def"
#include "clang/AST/BuiltinTypes.def"

Go to the source code of this file.

Namespaces
namespace clang
The JSON file list parser is used to communicate input to InstallAPI.
Macros
#define TYPE(CLASS, BASE)
#define TYPE(CLASS, BASE)
#define ABSTRACT_TYPE(Class, Parent)
#define TYPE(Class, Parent)
#define ABSTRACT_TYPE(Class, Parent)
#define TYPE(Class, Parent)
#define ABSTRACT_TYPE(Class, Parent)
#define TYPE(Class, Parent)
#define ABSTRACT_TYPE(Class, Parent)
#define TYPE(Class, Parent)
#define ABSTRACT_TYPE(Class, Parent)
#define TYPE(Class, Parent)
#define TYPE(Class, Base)
#define DEPENDENT_TYPE(Class, Base) QualType Visit##Class##Type(const Class##Type *T) { return QualType(T, 0); }
#define TRIVIAL_TYPE_CLASS(Class) QualType Visit##Class##Type(const Class##Type *T) { return QualType(T, 0); }
#define SUGARED_TYPE_CLASS(Class)
#define WASM_TYPE(Name, Id, SingletonId) case BuiltinType::Id:
#define HLSL_INTANGIBLE_TYPE(Name, Id, SingletonId) case BuiltinType::Id:
#define SVE_VECTOR_TYPE(Name, MangledName, Id, SingletonId)
#define SVE_OPAQUE_TYPE(Name, MangledName, Id, SingletonId)
#define SVE_PREDICATE_TYPE(Name, MangledName, Id, SingletonId)
#define AARCH64_VECTOR_TYPE(Name, MangledName, Id, SingletonId)
#define RVV_TYPE(Name, Id, SingletonId) case BuiltinType::Id:
#define RVV_VECTOR_TYPE(Name, Id, SingletonId, NumEls, ElBits, NF, IsSigned, IsFP, IsBF)
#define RVV_PREDICATE_TYPE(Name, Id, SingletonId, NumEls)
#define RVV_PREDICATE_TYPE(Name, Id, SingletonId, NumEls)
#define ABSTRACT_TYPE(Derived, Base)
#define TYPE(Derived, Base) case Derived: return #Derived;
#define IMAGE_TYPE(ImgType, Id, SingletonId, Access, Suffix)
#define EXT_OPAQUE_TYPE(ExtType, Id, Ext)
#define SVE_TYPE(Name, Id, SingletonId)
#define PPC_VECTOR_TYPE(Name, Id, Size)
#define RVV_TYPE(Name, Id, SingletonId)
#define WASM_TYPE(Name, Id, SingletonId)
#define AMDGPU_TYPE(Name, Id, SingletonId, Width, Align)
#define HLSL_INTANGIBLE_TYPE(Name, Id, SingletonId)
#define TYPE(Class, Base)
#define NON_CANONICAL_TYPE(Class, Base) case Type::Class:
#define TYPE(Class, Base)
#define DEPENDENT_TYPE(Class, Base) case Type::Class:
#define NON_CANONICAL_UNLESS_DEPENDENT_TYPE(Class, Base) case Type::Class:
#define TYPE(Class, Base)
#define NON_CANONICAL_TYPE(Class, Base) case Type::Class:
#define TYPE(Class, Base)
#define DEPENDENT_TYPE(Class, Base) case Type::Class:
#define NON_CANONICAL_UNLESS_DEPENDENT_TYPE(Class, Base) case Type::Class:
#define NON_CANONICAL_TYPE(Class, Parent)
#define TYPE(Class, Parent)
#define SIGNED_TYPE(Id, SingletonId) case BuiltinType::Id:
#define UNSIGNED_TYPE(Id, SingletonId) case BuiltinType::Id:
#define FLOATING_TYPE(Id, SingletonId) case BuiltinType::Id:
#define BUILTIN_TYPE(Id, SingletonId)
#define IMAGE_TYPE(ImgType, Id, SingletonId, Access, Suffix) case BuiltinType::Id:
#define EXT_OPAQUE_TYPE(ExtType, Id, Ext) case BuiltinType::Id:
#define SVE_TYPE(Name, Id, SingletonId) case BuiltinType::Id:
#define PPC_VECTOR_TYPE(Name, Id, Size) case BuiltinType::Id:
#define RVV_TYPE(Name, Id, SingletonId) case BuiltinType::Id:
#define WASM_TYPE(Name, Id, SingletonId) case BuiltinType::Id:
#define AMDGPU_TYPE(Name, Id, SingletonId, Width, Align) case BuiltinType::Id:
#define HLSL_INTANGIBLE_TYPE(Name, Id, SingletonId) case BuiltinType::Id:
Functions
template
static const T * getAsSugar (const Type *Cur)
This will check for a T (which should be a Type which can act as sugar, such as a TypedefType) by removing any existing sugar until it reaches a T or a non-sugared type.
static bool isTriviallyCopyableTypeImpl (const QualType &type, const ASTContext &Context, bool IsCopyConstructible)
static TagDecl * getInterestingTagDecl (TagDecl *decl)
static const TemplateTypeParmDecl * getReplacedParameter (Decl *D, unsigned Index)
static CachedProperties computeCachedProperties (const Type *T)
raw_ostream & clang::operator<< (raw_ostream &OS, const FunctionEffectWithCondition &CFE)

AARCH64_VECTOR_TYPE

| #define AARCH64_VECTOR_TYPE | ( | | Name, | | --------------------------------------------------------------- | - | | ----- | | | MangledName, | | | | | | Id, | | | | | | SingletonId | | | | | ) | | | |

Value:

case BuiltinType::Id: \

return false;

ABSTRACT_TYPE [1/6]

| #define ABSTRACT_TYPE | ( | | Class, | | ------------------------------------------------------------------ | - | | ------ | | | Parent | | | | | ) | | | |

ABSTRACT_TYPE [2/6]

| #define ABSTRACT_TYPE | ( | | Class, | | ------------------------------------------------------------------ | - | | ------ | | | Parent | | | | | ) | | | |

ABSTRACT_TYPE [3/6]

| #define ABSTRACT_TYPE | ( | | Class, | | ------------------------------------------------------------------ | - | | ------ | | | Parent | | | | | ) | | | |

ABSTRACT_TYPE [4/6]

| #define ABSTRACT_TYPE | ( | | Class, | | ------------------------------------------------------------------ | - | | ------ | | | Parent | | | | | ) | | | |

ABSTRACT_TYPE [5/6]

| #define ABSTRACT_TYPE | ( | | Class, | | ------------------------------------------------------------------ | - | | ------ | | | Parent | | | | | ) | | | |

ABSTRACT_TYPE [6/6]

| #define ABSTRACT_TYPE | ( | | Derived, | | ------------------------- | - | | -------- | | | Base | | | | | ) | | | |

AMDGPU_TYPE [1/2]

| #define AMDGPU_TYPE | ( | | Name, | | --------------------------------------------------------------- | - | | ----- | | | Id, | | | | | | SingletonId, | | | | | | Width, | | | | | | Align | | | | | ) | | | |

AMDGPU_TYPE [2/2]

| #define AMDGPU_TYPE | ( | | Name, | | --------------------------------------------------------------- | --------------------- | | ----- | | | Id, | | | | | | SingletonId, | | | | | | Width, | | | | | | Align | | | | | ) | case BuiltinType::Id: | | |

BUILTIN_TYPE

| #define BUILTIN_TYPE | ( | | Id, | | --------------------- | - | | ------------------------------------------------------------ | | | SingletonId | | | | | ) | | | |

DEPENDENT_TYPE [1/3]

DEPENDENT_TYPE [2/3]

| #define DEPENDENT_TYPE | ( | | Class, | | ------------------------- | ----------------- | | ------ | | | Base | | | | | ) | case Type::Class: | | |

DEPENDENT_TYPE [3/3]

| #define DEPENDENT_TYPE | ( | | Class, | | ------------------------- | ----------------- | | ------ | | | Base | | | | | ) | case Type::Class: | | |

EXT_OPAQUE_TYPE [1/2]

| #define EXT_OPAQUE_TYPE | ( | | ExtType, | | --------------------------------------------------------------- | - | | -------- | | | Id, | | | | | | Ext | | | | | ) | | | |

Value:

case Id: \

return #ExtType;

EXT_OPAQUE_TYPE [2/2]

| #define EXT_OPAQUE_TYPE | ( | | ExtType, | | --------------------------------------------------------------- | --------------------- | | -------- | | | Id, | | | | | | Ext | | | | | ) | case BuiltinType::Id: | | |

FLOATING_TYPE

| #define FLOATING_TYPE | ( | | Id, | | ---------------------- | --------------------- | | ------------------------------------------------------------ | | | SingletonId | | | | | ) | case BuiltinType::Id: | | |

HLSL_INTANGIBLE_TYPE [1/3]

| #define HLSL_INTANGIBLE_TYPE | ( | | Name, | | --------------------------------------------------------------- | --------------------- | | ----- | | | Id, | | | | | | SingletonId | | | | | ) | case BuiltinType::Id: | | |

HLSL_INTANGIBLE_TYPE [2/3]

| #define HLSL_INTANGIBLE_TYPE | ( | | Name, | | --------------------------------------------------------------- | - | | ----- | | | Id, | | | | | | SingletonId | | | | | ) | | | |

HLSL_INTANGIBLE_TYPE [3/3]

| #define HLSL_INTANGIBLE_TYPE | ( | | Name, | | --------------------------------------------------------------- | --------------------- | | ----- | | | Id, | | | | | | SingletonId | | | | | ) | case BuiltinType::Id: | | |

IMAGE_TYPE [1/2]

| #define IMAGE_TYPE | ( | | ImgType, | | --------------------------------------------------------------- | - | | -------- | | | Id, | | | | | | SingletonId, | | | | | | Access, | | | | | | Suffix | | | | | ) | | | |

Value:

case Id: \

return "__" #Access " " #ImgType "_t";

IMAGE_TYPE [2/2]

| #define IMAGE_TYPE | ( | | ImgType, | | --------------------------------------------------------------- | --------------------- | | -------- | | | Id, | | | | | | SingletonId, | | | | | | Access, | | | | | | Suffix | | | | | ) | case BuiltinType::Id: | | |

NON_CANONICAL_TYPE [1/3]

| #define NON_CANONICAL_TYPE | ( | | Class, | | ---------------------------- | ----------------- | | ------ | | | Base | | | | | ) | case Type::Class: | | |

NON_CANONICAL_TYPE [2/3]

| #define NON_CANONICAL_TYPE | ( | | Class, | | ---------------------------- | ----------------- | | ------ | | | Base | | | | | ) | case Type::Class: | | |

NON_CANONICAL_TYPE [3/3]

| #define NON_CANONICAL_TYPE | ( | | Class, | | ------------------------------------------------------------------ | - | | ------ | | | Parent | | | | | ) | | | |

Value:

case Type::Class: \

llvm_unreachable("non-canonical type");

NON_CANONICAL_UNLESS_DEPENDENT_TYPE [1/2]

| #define NON_CANONICAL_UNLESS_DEPENDENT_TYPE | ( | | Class, | | ----------------------------------------------- | ----------------- | | ------ | | | Base | | | | | ) | case Type::Class: | | |

NON_CANONICAL_UNLESS_DEPENDENT_TYPE [2/2]

| #define NON_CANONICAL_UNLESS_DEPENDENT_TYPE | ( | | Class, | | ----------------------------------------------- | ----------------- | | ------ | | | Base | | | | | ) | case Type::Class: | | |

PPC_VECTOR_TYPE [1/2]

| #define PPC_VECTOR_TYPE | ( | | Name, | | --------------------------------------------------------------- | - | | ----- | | | Id, | | | | | | Size | | | | | ) | | | |

PPC_VECTOR_TYPE [2/2]

| #define PPC_VECTOR_TYPE | ( | | Name, | | --------------------------------------------------------------- | --------------------- | | ----- | | | Id, | | | | | | Size | | | | | ) | case BuiltinType::Id: | | |

RVV_PREDICATE_TYPE [1/2]

| #define RVV_PREDICATE_TYPE | ( | | Name, | | --------------------------------------------------------------- | - | | ----- | | | Id, | | | | | | SingletonId, | | | | | | NumEls | | | | | ) | | | |

Value:

case BuiltinType::Id: \

return true;

RVV_PREDICATE_TYPE [2/2]

| #define RVV_PREDICATE_TYPE | ( | | Name, | | --------------------------------------------------------------- | - | | ----- | | | Id, | | | | | | SingletonId, | | | | | | NumEls | | | | | ) | | | |

Value:

case BuiltinType::Id: \

return Ctx.UnsignedCharTy;

RVV_TYPE [1/3]

| #define RVV_TYPE | ( | | Name, | | --------------------------------------------------------------- | --------------------- | | ----- | | | Id, | | | | | | SingletonId | | | | | ) | case BuiltinType::Id: | | |

RVV_TYPE [2/3]

| #define RVV_TYPE | ( | | Name, | | --------------------------------------------------------------- | - | | ----- | | | Id, | | | | | | SingletonId | | | | | ) | | | |

RVV_TYPE [3/3]

| #define RVV_TYPE | ( | | Name, | | --------------------------------------------------------------- | --------------------- | | ----- | | | Id, | | | | | | SingletonId | | | | | ) | case BuiltinType::Id: | | |

RVV_VECTOR_TYPE

| #define RVV_VECTOR_TYPE | ( | | Name, | | --------------------------------------------------------------- | - | | ----- | | | Id, | | | | | | SingletonId, | | | | | | NumEls, | | | | | | ElBits, | | | | | | NF, | | | | | | IsSigned, | | | | | | IsFP, | | | | | | IsBF | | | | | ) | | | |

Value:

case BuiltinType::Id: \

return NF == 1;

SIGNED_TYPE

| #define SIGNED_TYPE | ( | | Id, | | -------------------- | --------------------- | | ------------------------------------------------------------ | | | SingletonId | | | | | ) | case BuiltinType::Id: | | |

SUGARED_TYPE_CLASS

| #define SUGARED_TYPE_CLASS | ( | | Class | ) | | ---------------------------- | - | | ----- | - |

Value:

if (desugaredType.isNull()) \

return {}; \

return desugaredType; \

}

A (possibly-)qualified type.

bool isNull() const

Return true if this QualType doesn't point to a type yet.

void * getAsOpaquePtr() const

The base class of the type hierarchy.

const FunctionProtoType * T

@ Class

The "class" keyword introduces the elaborated-type-specifier.

Definition at line 986 of file Type.cpp.

SVE_OPAQUE_TYPE

| #define SVE_OPAQUE_TYPE | ( | | Name, | | --------------------------------------------------------------- | - | | ----- | | | MangledName, | | | | | | Id, | | | | | | SingletonId | | | | | ) | | | |

Value:

case BuiltinType::Id: \

return true;

SVE_PREDICATE_TYPE

| #define SVE_PREDICATE_TYPE | ( | | Name, | | --------------------------------------------------------------- | - | | ----- | | | MangledName, | | | | | | Id, | | | | | | SingletonId | | | | | ) | | | |

Value:

case BuiltinType::Id: \

return true;

SVE_TYPE [1/2]

| #define SVE_TYPE | ( | | Name, | | --------------------------------------------------------------- | - | | ----- | | | Id, | | | | | | SingletonId | | | | | ) | | | |

SVE_TYPE [2/2]

| #define SVE_TYPE | ( | | Name, | | --------------------------------------------------------------- | --------------------- | | ----- | | | Id, | | | | | | SingletonId | | | | | ) | case BuiltinType::Id: | | |

SVE_VECTOR_TYPE

| #define SVE_VECTOR_TYPE | ( | | Name, | | --------------------------------------------------------------- | - | | ----- | | | MangledName, | | | | | | Id, | | | | | | SingletonId | | | | | ) | | | |

Value:

case BuiltinType::Id: \

return true;

TRIVIAL_TYPE_CLASS

TYPE [1/14]

| #define TYPE | ( | | CLASS, | | ------------ | - | | ------ | | | BASE | | | | | ) | | | |

Value:

static_assert(!std::is_polymorphic<CLASS##Type>::value, \

#CLASS "Type should not be polymorphic!");

Definition at line 979 of file Type.cpp.

TYPE [2/14]

| #define TYPE | ( | | CLASS, | | ------------ | - | | ------ | | | BASE | | | | | ) | | | |

Value:

static_assert(std::is_trivially_destructible<CLASS##Type>::value, \

#CLASS "Type should be trivially destructible!");

Definition at line 979 of file Type.cpp.

TYPE [3/14]

| #define TYPE | ( | | Class, | | ------------------------- | - | | ------ | | | Base | | | | | ) | | | |

TYPE [4/14]

| #define TYPE | ( | | Class, | | ------------------------- | - | | ------ | | | Base | | | | | ) | | | |

TYPE [5/14]

| #define TYPE | ( | | Class, | | ------------------------- | - | | ------ | | | Base | | | | | ) | | | |

TYPE [6/14]

| #define TYPE | ( | | Class, | | ------------------------- | - | | ------ | | | Base | | | | | ) | | | |

TYPE [7/14]

| #define TYPE | ( | | Class, | | ------------------------- | - | | ------ | | | Base | | | | | ) | | | |

TYPE [8/14]

| #define TYPE | ( | | Class, | | ------------------------------------------------------------------ | - | | ------ | | | Parent | | | | | ) | | | |

Value:

case Type::Class: { \

const auto *ty = cast<Class##Type>(this); \

}

return(__x > > __y)|(__x<<(32 - __y))

Definition at line 979 of file Type.cpp.

TYPE [9/14]

| #define TYPE | ( | | Class, | | ------------------------------------------------------------------ | - | | ------ | | | Parent | | | | | ) | | | |

Value:

case Type::Class: { \

const auto *Ty = cast<Class##Type>(CurTy); \

if (!Ty->isSugared()) \

Cur = Ty->desugar(); \

break; \

}

A std::pair-like structure for storing a qualified type split into its local qualifiers and its local...

Definition at line 979 of file Type.cpp.

TYPE [10/14]

| #define TYPE | ( | | Class, | | ------------------------------------------------------------------ | - | | ------ | | | Parent | | | | | ) | | | |

Value:

case Type::Class: { \

const auto *ty = cast<Class##Type>(split.Ty); \

if (!ty->isSugared()) goto done; \

next = ty->desugar(); \

break; \

}

Definition at line 979 of file Type.cpp.

TYPE [11/14]

| #define TYPE | ( | | Class, | | ------------------------------------------------------------------ | - | | ------ | | | Parent | | | | | ) | | | |

Value:

case Type::Class: { \

const auto *Ty = cast<Class##Type>(Cur); \

if (!Ty->isSugared()) return 0; \

Cur = Ty->desugar().getTypePtr(); \

break; \

}

Definition at line 979 of file Type.cpp.

TYPE [12/14]

| #define TYPE | ( | | Class, | | ------------------------------------------------------------------ | - | | ------ | | | Parent | | | | | ) | | | |

Value:

const auto *Ty = cast<Class##Type>(Cur); \

if (!Ty->isSugared()) return Cur; \

Cur = Ty->desugar().getTypePtr(); \

break; \

}

Definition at line 979 of file Type.cpp.

TYPE [13/14]

| #define TYPE | ( | | Class, | | ------------------------------------------------------------------ | - | | ------ | | | Parent | | | | | ) | | | |

TYPE [14/14]

| #define TYPE | ( | | Derived, | | ------------------------- | ------------------------------------------------------------------------------------------- | | -------- | | | Base | | | | | ) | case Derived: return #Derived; | | |

UNSIGNED_TYPE

| #define UNSIGNED_TYPE | ( | | Id, | | ---------------------- | --------------------- | | ------------------------------------------------------------ | | | SingletonId | | | | | ) | case BuiltinType::Id: | | |

WASM_TYPE [1/3]

| #define WASM_TYPE | ( | | Name, | | --------------------------------------------------------------- | --------------------- | | ----- | | | Id, | | | | | | SingletonId | | | | | ) | case BuiltinType::Id: | | |

WASM_TYPE [2/3]

| #define WASM_TYPE | ( | | Name, | | --------------------------------------------------------------- | - | | ----- | | | Id, | | | | | | SingletonId | | | | | ) | | | |

WASM_TYPE [3/3]

| #define WASM_TYPE | ( | | Name, | | --------------------------------------------------------------- | --------------------- | | ----- | | | Id, | | | | | | SingletonId | | | | | ) | case BuiltinType::Id: | | |

Cache

computeCachedProperties()

static CachedProperties computeCachedProperties ( const Type * T) static

getAsSugar()

template

static const T * getAsSugar ( const Type * Cur) static

This will check for a T (which should be a Type which can act as sugar, such as a TypedefType) by removing any existing sugar until it reaches a T or a non-sugared type.

Definition at line 593 of file Type.cpp.

References clang::Type::getTypeClass().

getInterestingTagDecl()

getReplacedParameter()

isTriviallyCopyableTypeImpl()

Definition at line 2751 of file Type.cpp.

References clang::Type::getAs(), clang::ASTContext::getBaseElementType(), clang::Type::isDependentType(), clang::Type::isIncompleteType(), clang::Type::isScalarType(), clang::Type::isSizelessBuiltinType(), isTriviallyCopyableTypeImpl(), clang::Type::isVectorType(), and clang::ast_matchers::type.

Referenced by clang::QualType::isTriviallyCopyableType(), isTriviallyCopyableTypeImpl(), and clang::QualType::isTriviallyCopyConstructibleType().