Michael137 added a comment.

In D131974#3734849 <https://reviews.llvm.org/D131974#3734849>, @labath wrote:

> In D131974#3733024 <https://reviews.llvm.org/D131974#3733024>, @Michael137 
> wrote:
>
>> In D131974#3732727 <https://reviews.llvm.org/D131974#3732727>, @labath wrote:
>>
>>> Any particular reason for not removing the `SC_Extern` check? I'm pretty 
>>> sure I could create a test case with a `static` abi-tagged function which 
>>> we wouldn't be able to call with that check in place...
>>
>> Boiled down to this comment:
>>
>>> the local (indicated by the `L` in the name) mangled name is not 
>>> necessarily unique
>>
>> Attaching it to non-external functions caused 
>> `cpp/namespace/TestNamespaceLookup.py` to fail. With a non-static and a 
>> static version of `func()` LLDB chose the wrong one. I can follow up on 
>> whether this is a bug elsewhere and how feasible it would be to 
>> unconditionally attach the label
>
> Ah, this is a fun one. So this breaks the 
> `test_scope_lookup_with_run_command` test in `TestNamespaceLookup.py`, but 
> simultaneously "fixes"  `test_file_scope_lookup_with_run_command`. I would 
> say this is a pre-existing bug, that just happens to manifest itself 
> differently with this change. The problem is that lldb is not able to 
> correctly scope CU-local objects, as it ends up putting all files into one 
> huge AST context. It was mostly accidental that lldb picked the external 
> version of the function (because it happened to get its name mangling 
> "right"). Now it happens to pick the static one as they both have the same 
> signature (and I guess this is the one that gets parsed first).

When I initially looked at, it seemed unintuitive for LLDB to pick the 
file-static function (from a context where it's usually not accessible) over 
the one in the header so I kept the check in.
But it's true that the storage-class just works around a different bug. There 
seem to always be cases where we pick an incorrect overload no matter how you 
flip it.
Happy to remove the check and flip the XFAIL


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D131974/new/

https://reviews.llvm.org/D131974

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

Reply via email to