<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">Thanks1 fixed here: <a href="https://reviews.llvm.org/D103532" class="">https://reviews.llvm.org/D103532</a><br class=""><div><br class=""><blockquote type="cite" class=""><div class="">On 2 Jun 2021, at 18:06, Andy Yankovsky <<a href="mailto:werat@google.com" class="">werat@google.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class="">I think the problem is specific to references, at least that's the case I ran into in lldb-eval -- <a href="https://github.com/google/lldb-eval/blob/master/docs/lldb-bugs.md#dereferencing-a-value-canonizes-the-type" class="">https://github.com/google/lldb-eval/blob/master/docs/lldb-bugs.md#dereferencing-a-value-canonizes-the-type</a></div><br class=""><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, 2 Jun 2021 at 17:26, Raphael “Teemperor” Isemann <<a href="mailto:teemperor@gmail.com" class="">teemperor@gmail.com</a>> wrote:<br class=""></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">I assume your bug is for dereferencing references? In your test taking the ref variable and then dereferencing it via the SB API reproduces that I think you're running into:<br class="">
<br class="">
>>> lldb.frame.FindVariable("p_ref").GetType().GetName()<br class="">
'TPair &'<br class="">
>>> lldb.frame.FindVariable("p_ref").Dereference().GetType().GetName()<br class="">
'TTuple'<br class="">
<br class="">
(I made `p_ref` a local to avoid the expression evaluation machinery)<br class="">
<br class="">
Cheers,<br class="">
- Raphael<br class="">
<br class="">
> On 2 Jun 2021, at 15:27, Lasse Folger <<a href="mailto:lassefolger@google.com" target="_blank" class="">lassefolger@google.com</a>> wrote:<br class="">
> <br class="">
> Hi Raphael,<br class="">
> <br class="">
> I have a very similar test for a tool that integrates with lldb which failed without the patch.<br class="">
> I thought the test in the patch would behave the same which is apparently not the case.<br class="">
> Thanks for pointing that out. I will need to take another look and will get back to you once I figure out what's wrong.<br class="">
> Sorry for the inconvenience.<br class="">
> <br class="">
> kind regards,<br class="">
> Lasse<br class="">
> <br class="">
> <br class="">
> On Wed, Jun 2, 2021 at 1:15 PM Raphael “Teemperor” Isemann <<a href="mailto:teemperor@gmail.com" target="_blank" class="">teemperor@gmail.com</a>> wrote:<br class="">
> Hi Lasse,<br class="">
> <br class="">
> the test from the patch passes for me even without your non-test changes. Not sure if you attached the wrong diff or it needs to be applied on a specific commit that is not ToT? Can you maybe try pushing your code to some git repo?<br class="">
> <br class="">
> Your change to TypeSystemClang (which I assume removes the canonicalization of parent_qual_type) is from what I can see not actually changing the result value of `GetChildCompilerTypeAtIndex`. It looks like the return value for pointer types is computed independently from `parent_qual_type` without any canonicalization.<br class="">
> <br class="">
> Cheers,<br class="">
> - Raphael<br class="">
> <br class="">
>> On 2 Jun 2021, at 11:39, Lasse Folger via lldb-commits <<a href="mailto:lldb-commits@lists.llvm.org" target="_blank" class="">lldb-commits@lists.llvm.org</a>> wrote:<br class="">
>> <br class="">
>> <0001-lldb-prevent-canonization-of-type-when-dereferencing.patch><br class="">
> <br class="">
<br class="">
</blockquote></div>
</div></blockquote></div><br class=""></body></html>