original) (raw)
clang: lib/AST/Type.cpp File Reference (#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().