Hi lldb devs,

I prepared a small patch to improve the type consistency when dereferencing
values in lldb.

The problem I'm trying to solve is that the type of a value is canonized
(in clang) when the value is dereferenced.

Without the patch the test I added would return the type TTuple instead of
TPair.

There is one issue with the patch:
In theory the
*compiler_type.GetChildCompilerTypeAtIndex(*
call is not needed. Unfortunately, to get a name for the dereferenced
value, this call is needed since only the type system (at least clang)
knows a name.
The dereferenced value does not necessarily have a name. However, the clang
type system knows an alias (*name* if it is a reference or **name* if it is
a pointer).

I also tried to fix this issue in the type system directly
(lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp:6051).
However, changing that broke several tests.

Let me know what you think.

kind regards,
Lasse

Attachment: 0001-lldb-prevent-canonization-of-type-when-dereferencing.patch
Description: Binary data

_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to