diff options
Diffstat (limited to 'lldb/source/DataFormatters/FormatManager.cpp')
-rw-r--r-- | lldb/source/DataFormatters/FormatManager.cpp | 30 |
1 files changed, 12 insertions, 18 deletions
diff --git a/lldb/source/DataFormatters/FormatManager.cpp b/lldb/source/DataFormatters/FormatManager.cpp index e41d5eecb32..12e8ef43bfd 100644 --- a/lldb/source/DataFormatters/FormatManager.cpp +++ b/lldb/source/DataFormatters/FormatManager.cpp @@ -210,11 +210,15 @@ FormatManager::GetPossibleMatches (ValueObject& valobj, entries.push_back({bitfieldname,0,did_strip_ptr,did_strip_ref,did_strip_typedef}); reason |= lldb_private::eFormatterChoiceCriterionStrippedBitField; } - entries.push_back({type_name,reason,did_strip_ptr,did_strip_ref,did_strip_typedef}); - ConstString display_type_name(compiler_type.GetDisplayTypeName()); - if (display_type_name != type_name) - entries.push_back({display_type_name,reason,did_strip_ptr,did_strip_ref,did_strip_typedef}); + if (!compiler_type.IsMeaninglessWithoutDynamicResolution()) + { + entries.push_back({type_name,reason,did_strip_ptr,did_strip_ref,did_strip_typedef}); + + ConstString display_type_name(compiler_type.GetDisplayTypeName()); + if (display_type_name != type_name) + entries.push_back({display_type_name,reason,did_strip_ptr,did_strip_ref,did_strip_typedef}); + } for (bool is_rvalue_ref = true, j = true; j && compiler_type.IsReferenceType(nullptr, &is_rvalue_ref); j = false) { @@ -641,22 +645,12 @@ ConstString FormatManager::GetTypeForCache (ValueObject& valobj, lldb::DynamicValueType use_dynamic) { - if (use_dynamic == lldb::eNoDynamicValues) + ValueObjectSP valobj_sp = valobj.GetQualifiedRepresentationIfAvailable(use_dynamic, valobj.IsSynthetic()); + if (valobj_sp && valobj_sp->GetCompilerType().IsValid()) { - if (valobj.IsDynamic()) - { - if (valobj.GetStaticValue()) - return valobj.GetStaticValue()->GetQualifiedTypeName(); - else - return ConstString(); - } - else - return valobj.GetQualifiedTypeName(); + if (!valobj_sp->GetCompilerType().IsMeaninglessWithoutDynamicResolution()) + return valobj_sp->GetQualifiedTypeName(); } - if (valobj.IsDynamic()) - return valobj.GetQualifiedTypeName(); - if (valobj.GetDynamicValue(use_dynamic)) - return valobj.GetDynamicValue(use_dynamic)->GetQualifiedTypeName(); return ConstString(); } |