jarin added a comment.

In D69309#1752738 <https://reviews.llvm.org/D69309#1752738>, @friss wrote:

> Sorry that I haven't reviewed the patch, but there's something I'd like to 
> point out before anyone invests a lot of time into plugin holes in our 
> current template support code.
>
> It would be great to fix the way templates are represented, because currently 
> the debug info doesn't allow us to answer Clang's requests correctly. There 
> is the beginning of a discussion here: 
> http://lists.llvm.org/pipermail/lldb-commits/Week-of-Mon-20180507/040689.html
>
> Basically, today the debug info will describe an entity named "Foo<int>". The 
> accelerator tables all reference this name. So when Clang asks us if we know 
> "Foo" (which is what happens when instantiating), we fail to find the right 
> instantiations. The consensus of the above discussion was that we should 
> change the debug info to have "Foo" as the name of any instantiation, with a 
> child DIE describing the template arguments. Just doing this in the compiler 
> causes test failures in LLDB, so there's some work to do in LLDB to support 
> this.


Having an entity for the template itself would be great. However, that would 
require compiler changes, so only the code compiled with new compilers would 
benefit, no? I am afraid we need a story for older toolchains, too.

In this patch, I do it in a really hacky way that does not work with 
accelerator tables, it only works with ManualDWARFIndex by extracting template 
names from instantiated templates.


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

https://reviews.llvm.org/D69309



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

Reply via email to