================ @@ -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(); ---------------- adrian-prantl wrote:
Here you are adding a function that takes a CompilerType holding an STL smart pointer and ask for the pointee type. We also have synthetic child formatters used by `frame variable` that allow evaluating `*my_shared_ptr`. From that I was assuming that there must be some overlap between what the dataformatter provides and what this function does. What I don't know is whether synthetic children provided by a formatter are a good fit for what you are trying to do, but maybe the inverse is true, and the existing data formatter should be implemented in terms of this new GetSmartPtrPointeeType() API. I just want to make sure we're not introducing two places in LLDB that have to know about STL smart pointers while covering slightly different functionality. 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