diff options
Diffstat (limited to 'source/Symbol/CompilerType.cpp')
-rw-r--r-- | source/Symbol/CompilerType.cpp | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/source/Symbol/CompilerType.cpp b/source/Symbol/CompilerType.cpp index e3880af27f22..5d845361b03c 100644 --- a/source/Symbol/CompilerType.cpp +++ b/source/Symbol/CompilerType.cpp @@ -690,15 +690,26 @@ size_t CompilerType::GetNumTemplateArguments() const { return 0; } -CompilerType -CompilerType::GetTemplateArgument(size_t idx, - lldb::TemplateArgumentKind &kind) const { +TemplateArgumentKind CompilerType::GetTemplateArgumentKind(size_t idx) const { + if (IsValid()) + return m_type_system->GetTemplateArgumentKind(m_type, idx); + return eTemplateArgumentKindNull; +} + +CompilerType CompilerType::GetTypeTemplateArgument(size_t idx) const { if (IsValid()) { - return m_type_system->GetTemplateArgument(m_type, idx, kind); + return m_type_system->GetTypeTemplateArgument(m_type, idx); } return CompilerType(); } +llvm::Optional<CompilerType::IntegralTemplateArgument> +CompilerType::GetIntegralTemplateArgument(size_t idx) const { + if (IsValid()) + return m_type_system->GetIntegralTemplateArgument(m_type, idx); + return llvm::None; +} + CompilerType CompilerType::GetTypeForFormatters() const { if (IsValid()) return m_type_system->GetTypeForFormatters(m_type); @@ -997,7 +1008,7 @@ bool CompilerType::ReadFromMemory(lldb_private::ExecutionContext *exe_ctx, if (addr == 0) return false; // The address is an address in this process, so just copy it - memcpy(dst, (uint8_t *)nullptr + addr, byte_size); + memcpy(dst, reinterpret_cast<uint8_t *>(addr), byte_size); return true; } else { Process *process = nullptr; |