================ @@ -194,6 +192,54 @@ class CompilerType { bool IsTypedefType() const; bool IsVoidType() const; + + bool IsSmartPtrType() const; + + bool IsInteger() const; + + bool IsFloat() const; + + bool IsEnumerationType() const; + + 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; + + bool IsContextuallyConvertibleToBool() const; + + bool IsBasicType() const; + + std::string TypeDescription(); + + bool CompareTypes(CompilerType rhs) const; + + const char *GetTypeTag(); + + uint32_t GetNumberOfNonEmptyBaseClasses(); + + CompilerType GetTemplateArgumentType(uint32_t idx); + + CompilerType GetSmartPtrPointeeType(); ---------------- jimingham wrote:
I was mostly trying to say that the ValueObject support for "faking the arrow operator effects" is orthogonal to having the type system contain the notion of "smart pointers". I also think the whole naming of this is confusing. What is a "smart pointer"? The IsSmartPtr states some intent about this: ` /// This determines if the type is a shared, unique or weak pointer, either /// from stdlibc++ or libc+++. bool IsSmartPtrType() const; ` But that is also a little odd. This is a general type system query but doesn't in fact have anything to do with the type system. Rather with a particular implementation in the C++ STL - which is orthogonal to the C++ type system... So it seems like an awfully C++ specific API to have in the Typesystem. https://github.com/llvm/llvm-project/pull/73472 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits