[Lldb-commits] [lldb] [lldb][TypeSystemClang] Allow arrays to be dereferenced in C/C++. (PR #135843)

Pavel Labath via lldb-commits lldb-commits at lists.llvm.org
Mon May 5 06:08:25 PDT 2025


================
@@ -2854,14 +2842,22 @@ ValueObjectSP ValueObject::Dereference(Status &error) {
           m_deref_valobj = new ValueObjectChild(
               *this, child_compiler_type, child_name, child_byte_size,
               child_byte_offset, child_bitfield_bit_size,
-              child_bitfield_bit_offset, child_is_base_class,
-              child_is_deref_of_parent, eAddressTypeInvalid, language_flags);
+              child_bitfield_bit_offset, child_is_base_class, true,
+              eAddressTypeInvalid, language_flags);
         }
       }
     }
-
-  } else if (IsSynthetic()) {
-    m_deref_valobj = GetChildMemberWithName("$$dereference$$").get();
+  } else {
+    auto err = child_compiler_type_or_err.takeError();
+    if (err.isA<llvm::StringError>()) {
+      deref_error = llvm::toString(std::move(err));
+      LLDB_LOG_ERROR(GetLog(LLDBLog::Types),
+                     llvm::createStringError(deref_error),
+                     "could not find child: {0}");
+    }
----------------
labath wrote:

Any error can be converted to a string.

```suggestion
    deref_error = llvm::toString(child_compiler_type_or_err.takeError());
    LLDB_LOG(GetLog(LLDBLog::Types),
                     "could not find child: {0}", deref_error);
```

https://github.com/llvm/llvm-project/pull/135843


More information about the lldb-commits mailing list