================ @@ -687,6 +687,39 @@ lldb::TemplateArgumentKind SBType::GetTemplateArgumentKind(uint32_t idx) { return eTemplateArgumentKindNull; } +lldb::SBValue SBType::GetTemplateArgumentValue(lldb::SBTarget target, + uint32_t idx) { + LLDB_INSTRUMENT_VA(this, target, idx); + + if (!IsValid()) + return {}; + + std::optional<CompilerType::IntegralTemplateArgument> arg; + const bool expand_pack = true; + switch (GetTemplateArgumentKind(idx)) { + case eTemplateArgumentKindIntegral: + arg = m_opaque_sp->GetCompilerType(false).GetIntegralTemplateArgument( + idx, expand_pack); + break; + default: + break; + } + + if (!arg) + return {}; + + Scalar value{arg->value}; + + if (!value.IsValid()) ---------------- labath wrote:
Can this ever be not valid? What would that even mean? https://github.com/llvm/llvm-project/pull/126901 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits