#include "clang/AST/Type.h"
#include "Linkage.h"
#include "clang/AST/ASTContext.h"
#include "clang/AST/Attr.h"
#include "clang/AST/CharUnits.h"
#include "clang/AST/Decl.h"
#include "clang/AST/DeclBase.h"
#include "clang/AST/DeclCXX.h"
#include "clang/AST/DeclFriend.h"
#include "clang/AST/DeclObjC.h"
#include "clang/AST/DeclTemplate.h"
#include "clang/AST/DependenceFlags.h"
#include "clang/AST/Expr.h"
#include "clang/AST/NestedNameSpecifier.h"
#include "clang/AST/PrettyPrinter.h"
#include "clang/AST/TemplateBase.h"
#include "clang/AST/TemplateName.h"
#include "clang/AST/TypeVisitor.h"
#include "clang/Basic/AddressSpaces.h"
#include "clang/Basic/ExceptionSpecificationType.h"
#include "clang/Basic/IdentifierTable.h"
#include "clang/Basic/LLVM.h"
#include "clang/Basic/LangOptions.h"
#include "clang/Basic/Linkage.h"
#include "clang/Basic/Specifiers.h"
#include "clang/Basic/TargetCXXABI.h"
#include "clang/Basic/TargetInfo.h"
#include "clang/Basic/Visibility.h"
#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.
namespace clang The JSON file list parser is used to communicate input to InstallAPI.Definition at line 980 of file Type.cpp.
◆ DEPENDENT_TYPE [3/3] #define DEPENDENT_TYPE ( Class, Base ) case Type::Class:Definition at line 980 of file Type.cpp.
◆ EXT_OPAQUE_TYPE [1/2] #define EXT_OPAQUE_TYPE ( ExtType, Id, Ext ) ◆ 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: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: \
CanQualType 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/3] #define SVE_TYPE ( Name, Id, SingletonId ) ◆ SVE_TYPE [2/3] #define SVE_TYPE ( Name, Id, SingletonId ) ◆ SVE_TYPE [3/3] #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] ◆ TYPE [4/14] ◆ TYPE [5/14] ◆ TYPE [6/14] ◆ TYPE [7/14] ◆ 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())
return0; \
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())
returnCur; \
Cur = Ty->desugar().getTypePtr(); \
break; \
}
Definition at line 979 of file Type.cpp.
◆ TYPE [13/14] ◆ TYPE [14/14] ◆ 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<typename T >
static const T * getAsSugar ( const Type * Cur ) staticThis 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 2749 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().
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4