LLDB mainline
Public Member Functions | List of all members
lldb_private::TaggedASTType< C > Class Template Reference

#include <TaggedASTType.h>

Inheritance diagram for lldb_private::TaggedASTType< C >:
Inheritance graph
[legend]

Public Member Functions

 TaggedASTType (const CompilerType &compiler_type)
 
 TaggedASTType (lldb::opaque_compiler_type_t type, lldb::TypeSystemWP type_system)
 
 TaggedASTType (const TaggedASTType< C > &tw)
 
 TaggedASTType ()
 
virtual ~TaggedASTType ()=default
 
TaggedASTType< C > & operator= (const TaggedASTType< C > &tw)
 
- Public Member Functions inherited from lldb_private::CompilerType
 CompilerType (lldb::TypeSystemWP type_system, lldb::opaque_compiler_type_t type)
 Creates a CompilerType with the given TypeSystem and opaque compiler type.
 
 CompilerType (TypeSystemSPWrapper type_system, lldb::opaque_compiler_type_t type)
 
 CompilerType (const CompilerType &rhs)
 
 CompilerType ()=default
 
bool IsForcefullyCompleted () const
 
bool GetValueAsScalar (const DataExtractor &data, lldb::offset_t data_offset, size_t data_byte_size, Scalar &value, ExecutionContextScope *exe_scope) const
 
void Clear ()
 
const CompilerTypeoperator= (const CompilerType &rhs)
 Operators.
 
bool operator< (const CompilerType &rhs) const
 
 operator bool () const
 Tests.
 
bool IsValid () const
 
bool IsArrayType (CompilerType *element_type=nullptr, uint64_t *size=nullptr, bool *is_incomplete=nullptr) const
 
bool IsVectorType (CompilerType *element_type=nullptr, uint64_t *size=nullptr) const
 
bool IsArrayOfScalarType () const
 
bool IsAggregateType () const
 
bool IsAnonymousType () const
 
bool IsScopedEnumerationType () const
 
bool IsBeingDefined () const
 
bool IsCharType () const
 
bool IsCompleteType () const
 
bool IsConst () const
 
bool IsDefined () const
 
bool IsFloatingPointType (uint32_t &count, bool &is_complex) const
 
bool IsFunctionType () const
 
uint32_t IsHomogeneousAggregate (CompilerType *base_type_ptr) const
 
size_t GetNumberOfFunctionArguments () const
 
CompilerType GetFunctionArgumentAtIndex (const size_t index) const
 
bool IsVariadicFunctionType () const
 
bool IsFunctionPointerType () const
 
bool IsMemberFunctionPointerType () const
 
bool IsBlockPointerType (CompilerType *function_pointer_type_ptr=nullptr) const
 
bool IsIntegerType (bool &is_signed) const
 
bool IsEnumerationType (bool &is_signed) const
 
bool IsIntegerOrEnumerationType (bool &is_signed) const
 
bool IsPolymorphicClass () const
 
bool IsPossibleDynamicType (CompilerType *target_type, bool check_cplusplus, bool check_objc) const
 
bool IsPointerToScalarType () const
 
bool IsRuntimeGeneratedType () const
 
bool IsPointerType (CompilerType *pointee_type=nullptr) const
 
bool IsPointerOrReferenceType (CompilerType *pointee_type=nullptr) const
 
bool IsReferenceType (CompilerType *pointee_type=nullptr, bool *is_rvalue=nullptr) const
 
bool ShouldTreatScalarValueAsAddress () const
 
bool IsScalarType () const
 
bool IsTemplateType () const
 
bool IsTypedefType () const
 
bool IsVoidType () const
 
bool IsInteger () const
 This is used when you don't care about the signedness of the integer.
 
bool IsFloat () const
 
bool IsEnumerationType () const
 This is used when you don't care about the signedness of the enum.
 
bool IsUnscopedEnumerationType () const
 
bool IsIntegerOrUnscopedEnumerationType () const
 
bool IsSigned () const
 
bool IsNullPtrType () const
 
bool IsBoolean () const
 
bool IsEnumerationIntegerTypeSigned () const
 
bool IsScalarOrUnscopedEnumerationType () const
 
bool IsPromotableIntegerType () const
 
bool IsPointerToVoid () const
 
bool IsRecordType () const
 
bool IsVirtualBase (CompilerType target_base, CompilerType *virtual_base, bool carry_virtual=false) const
 Checks whether target_base is a virtual base of type (direct or indirect).
 
bool IsContextuallyConvertibleToBool () const
 This may only be defined in TypeSystemClang.
 
bool IsBasicType () const
 
std::string TypeDescription ()
 
bool CompareTypes (CompilerType rhs) const
 
const char * GetTypeTag ()
 
uint32_t GetNumberOfNonEmptyBaseClasses ()
 Go through the base classes and count non-empty ones.
 
bool GetCompleteType () const
 Type Completion.
 
size_t GetPointerByteSize () const
 AST related queries.
 
TypeSystemSPWrapper GetTypeSystem () const
 Accessors.
 
ConstString GetTypeName (bool BaseOnly=false) const
 
ConstString GetDisplayTypeName () const
 
uint32_t GetTypeInfo (CompilerType *pointee_or_element_compiler_type=nullptr) const
 
lldb::LanguageType GetMinimumLanguage ()
 
lldb::opaque_compiler_type_t GetOpaqueQualType () const
 
lldb::TypeClass GetTypeClass () const
 
void SetCompilerType (lldb::TypeSystemWP type_system, lldb::opaque_compiler_type_t type)
 
void SetCompilerType (TypeSystemSPWrapper type_system, lldb::opaque_compiler_type_t type)
 
unsigned GetTypeQualifiers () const
 
CompilerType GetArrayElementType (ExecutionContextScope *exe_scope) const
 Creating related types.
 
CompilerType GetArrayType (uint64_t size) const
 
CompilerType GetCanonicalType () const
 
CompilerType GetFullyUnqualifiedType () const
 
CompilerType GetEnumerationIntegerType () const
 
int GetFunctionArgumentCount () const
 Returns -1 if this isn't a function of if the function doesn't have a prototype Returns a value >= 0 if there is a prototype.
 
CompilerType GetFunctionArgumentTypeAtIndex (size_t idx) const
 
CompilerType GetFunctionReturnType () const
 
size_t GetNumMemberFunctions () const
 
TypeMemberFunctionImpl GetMemberFunctionAtIndex (size_t idx)
 
CompilerType GetNonReferenceType () const
 If this type is a reference to a type (L value or R value reference), return a new type with the reference removed, else return the current type itself.
 
CompilerType GetPointeeType () const
 If this type is a pointer type, return the type that the pointer points to, else return an invalid type.
 
CompilerType GetPointerType () const
 Return a new CompilerType that is a pointer to this type.
 
CompilerType GetLValueReferenceType () const
 Return a new CompilerType that is a L value reference to this type if this type is valid and the type system supports L value references, else return an invalid type.
 
CompilerType GetRValueReferenceType () const
 Return a new CompilerType that is a R value reference to this type if this type is valid and the type system supports R value references, else return an invalid type.
 
CompilerType AddConstModifier () const
 Return a new CompilerType adds a const modifier to this type if this type is valid and the type system supports const modifiers, else return an invalid type.
 
CompilerType AddVolatileModifier () const
 Return a new CompilerType adds a volatile modifier to this type if this type is valid and the type system supports volatile modifiers, else return an invalid type.
 
CompilerType GetAtomicType () const
 Return a new CompilerType that is the atomic type of this type.
 
CompilerType AddRestrictModifier () const
 Return a new CompilerType adds a restrict modifier to this type if this type is valid and the type system supports restrict modifiers, else return an invalid type.
 
CompilerType CreateTypedef (const char *name, const CompilerDeclContext &decl_ctx, uint32_t payload) const
 Create a typedef to this type using "name" as the name of the typedef this type is valid and the type system supports typedefs, else return an invalid type.
 
CompilerType GetTypedefedType () const
 If the current object represents a typedef type, get the underlying type.
 
CompilerType GetBasicTypeFromAST (lldb::BasicType basic_type) const
 Create related types using the current type's AST.
 
std::optional< uint64_t > GetByteSize (ExecutionContextScope *exe_scope) const
 Return the size of the type in bytes.
 
std::optional< uint64_t > GetBitSize (ExecutionContextScope *exe_scope) const
 Return the size of the type in bits.
 
lldb::Encoding GetEncoding (uint64_t &count) const
 
lldb::Format GetFormat () const
 
std::optional< size_t > GetTypeBitAlign (ExecutionContextScope *exe_scope) const
 
llvm::Expected< uint32_t > GetNumChildren (bool omit_empty_base_classes, const ExecutionContext *exe_ctx) const
 
lldb::BasicType GetBasicTypeEnumeration () const
 
void ForEachEnumerator (std::function< bool(const CompilerType &integer_type, ConstString name, const llvm::APSInt &value)> const &callback) const
 If this type is an enumeration, iterate through all of its enumerators using a callback.
 
uint32_t GetNumFields () const
 
CompilerType GetFieldAtIndex (size_t idx, std::string &name, uint64_t *bit_offset_ptr, uint32_t *bitfield_bit_size_ptr, bool *is_bitfield_ptr) const
 
uint32_t GetNumDirectBaseClasses () const
 
uint32_t GetNumVirtualBaseClasses () const
 
CompilerType GetDirectBaseClassAtIndex (size_t idx, uint32_t *bit_offset_ptr) const
 
CompilerType GetVirtualBaseClassAtIndex (size_t idx, uint32_t *bit_offset_ptr) const
 
uint32_t GetIndexOfFieldWithName (const char *name, CompilerType *field_compiler_type=nullptr, uint64_t *bit_offset_ptr=nullptr, uint32_t *bitfield_bit_size_ptr=nullptr, bool *is_bitfield_ptr=nullptr) const
 
CompilerType GetChildCompilerTypeAtIndex (ExecutionContext *exe_ctx, size_t idx, bool transparent_pointers, bool omit_empty_base_classes, bool ignore_array_bounds, std::string &child_name, uint32_t &child_byte_size, int32_t &child_byte_offset, uint32_t &child_bitfield_bit_size, uint32_t &child_bitfield_bit_offset, bool &child_is_base_class, bool &child_is_deref_of_parent, ValueObject *valobj, uint64_t &language_flags) const
 
uint32_t GetIndexOfChildWithName (llvm::StringRef name, bool omit_empty_base_classes) const
 Lookup a child given a name.
 
size_t GetIndexOfChildMemberWithName (llvm::StringRef name, bool omit_empty_base_classes, std::vector< uint32_t > &child_indexes) const
 Lookup a child member given a name.
 
size_t GetNumTemplateArguments (bool expand_pack=false) const
 Return the number of template arguments the type has.
 
lldb::TemplateArgumentKind GetTemplateArgumentKind (size_t idx, bool expand_pack=false) const
 
CompilerType GetTypeTemplateArgument (size_t idx, bool expand_pack=false) const
 
std::optional< IntegralTemplateArgumentGetIntegralTemplateArgument (size_t idx, bool expand_pack=false) const
 Returns the value of the template argument and its type.
 
CompilerType GetTypeForFormatters () const
 
LazyBool ShouldPrintAsOneLiner (ValueObject *valobj) const
 
bool IsMeaninglessWithoutDynamicResolution () const
 
LLVM_DUMP_METHOD void dump () const
 Dumping types.
 
bool DumpTypeValue (Stream *s, lldb::Format format, const DataExtractor &data, lldb::offset_t data_offset, size_t data_byte_size, uint32_t bitfield_bit_size, uint32_t bitfield_bit_offset, ExecutionContextScope *exe_scope)
 
void DumpTypeDescription (lldb::DescriptionLevel level=lldb::eDescriptionLevelFull) const
 Dump to stdout.
 
void DumpTypeDescription (Stream *s, lldb::DescriptionLevel level=lldb::eDescriptionLevelFull) const
 Print a description of the type to a stream.
 

Detailed Description

template<unsigned int C>
class lldb_private::TaggedASTType< C >

Definition at line 18 of file TaggedASTType.h.

Constructor & Destructor Documentation

◆ TaggedASTType() [1/4]

template<unsigned int C>
lldb_private::TaggedASTType< C >::TaggedASTType ( const CompilerType compiler_type)
inline

Definition at line 20 of file TaggedASTType.h.

◆ TaggedASTType() [2/4]

template<unsigned int C>
lldb_private::TaggedASTType< C >::TaggedASTType ( lldb::opaque_compiler_type_t  type,
lldb::TypeSystemWP  type_system 
)
inline

Definition at line 23 of file TaggedASTType.h.

◆ TaggedASTType() [3/4]

template<unsigned int C>
lldb_private::TaggedASTType< C >::TaggedASTType ( const TaggedASTType< C > &  tw)
inline

Definition at line 27 of file TaggedASTType.h.

◆ TaggedASTType() [4/4]

template<unsigned int C>
lldb_private::TaggedASTType< C >::TaggedASTType ( )
inline

Definition at line 29 of file TaggedASTType.h.

◆ ~TaggedASTType()

template<unsigned int C>
virtual lldb_private::TaggedASTType< C >::~TaggedASTType ( )
virtualdefault

Member Function Documentation

◆ operator=()

template<unsigned int C>
TaggedASTType< C > & lldb_private::TaggedASTType< C >::operator= ( const TaggedASTType< C > &  tw)
inline

Definition at line 33 of file TaggedASTType.h.

References lldb_private::CompilerType::operator=().


The documentation for this class was generated from the following file: