[Lldb-commits] [lldb] [lldb][test] Fix unordered-map test (PR #156033)
Ebuka Ezike via lldb-commits
lldb-commits at lists.llvm.org
Fri Sep 12 04:00:35 PDT 2025
https://github.com/da-viper updated https://github.com/llvm/llvm-project/pull/156033
>From 09ad3b0137c3939a76e91409e8194215c1cd94a1 Mon Sep 17 00:00:00 2001
From: Ebuka Ezike <yerimyah1 at gmail.com>
Date: Fri, 29 Aug 2025 15:17:29 +0100
Subject: [PATCH] [lldb] fix std::unordered_map formatter for const types.
the type that is checked in isUnordered may be const qualified.
---
.../Language/CPlusPlus/LibCxxUnorderedMap.cpp | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxxUnorderedMap.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxxUnorderedMap.cpp
index f88a5319068a2..ef49c4e6055a8 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/LibCxxUnorderedMap.cpp
+++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxxUnorderedMap.cpp
@@ -113,10 +113,11 @@ CompilerType lldb_private::formatters::LibcxxStdUnorderedMapSyntheticFrontEnd::
// wraps a std::pair. Peel away the internal wrapper type - whose structure is
// of no value to users, to expose the std::pair. This matches the structure
// returned by the std::map synthetic provider.
- if (isUnorderedMap(m_backend.GetCompilerType()
- .GetNonReferenceType()
- .GetCanonicalType()
- .GetTypeName())) {
+ CompilerType backend_type = m_backend.GetCompilerType();
+ if (backend_type.IsPointerOrReferenceType())
+ backend_type = backend_type.GetPointeeType();
+
+ if (isUnorderedMap(backend_type.GetCanonicalType().GetTypeName())) {
std::string name;
CompilerType field_type =
element_type.GetFieldAtIndex(0, name, nullptr, nullptr, nullptr);
@@ -165,9 +166,9 @@ lldb::ValueObjectSP lldb_private::formatters::
ValueObjectSP hash_sp = node_sp->GetChildMemberWithName("__hash_");
if (!hash_sp || !value_sp) {
node_sp = m_next_element->Cast(m_node_type.GetPointerType())
- ->Dereference(error);
+ ->Dereference(error);
if (!node_sp || error.Fail())
- return nullptr;
+ return nullptr;
hash_sp = node_sp->GetChildMemberWithName("__hash_");
if (!hash_sp)
More information about the lldb-commits
mailing list