[Lldb-commits] [lldb] [lldb][Expression] Avoid creating ValueObjectSyntheticFilter for incomplete C++ types in ObjC++ targets (PR #153454)
Michael Buch via lldb-commits
lldb-commits at lists.llvm.org
Fri Aug 15 00:46:11 PDT 2025
Michael137 wrote:
Hmm looks like this breaks `TestDataFormatterObjCNSContainer.py`:
```
AssertionError: False is not true : Command 'frame variable -d run-target *cfDictionaryRef' did not return successfully
Error output:
error: <user expression 0>:1:1: dereference failed: incomplete type "const __CFDictionary": (CFDictionaryRef) cfDictionaryRef
1 | *cfDictionaryRef
| ^
```
Looks like that happens because `CFDictionary` is technically not an ObjC (just C)? But LLDB creates a C++ decl out of it (because we don't differentiate C and C++ structures):
```
0x00000051: DW_TAG_structure_type
DW_AT_name ("__CFDictionary")
DW_AT_declaration (true)
```
So then we don't do this special dereferencing we do for ObjC.
Sounds like we should fix this dereferencing properly instead.
https://github.com/llvm/llvm-project/pull/153454
More information about the lldb-commits
mailing list