[PATCH] D97411: [DebugInfo] Add an attribute to force type info to be emitted for types that are required to be complete.

Amy Huang via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Tue Mar 2 14:44:05 PST 2021


akhuang added a comment.

In D97411#2595155 <https://reviews.llvm.org/D97411#2595155>, @dblaikie wrote:

> In D97411#2595049 <https://reviews.llvm.org/D97411#2595049>, @akhuang wrote:
>
>> In D97411#2594345 <https://reviews.llvm.org/D97411#2594345>, @ldionne wrote:
>>
>>> I don't have an opinion about the attribute itself. I do have an opinion about using that attribute in libc++ instead of fixing the underlying issue (I think we shouldn't do it). Can you confirm what the problematic types are? In another patch I saw `__hash_node`, `__hash_value_type`, `__tree_node` and `__value_type`. Is that it?
>>
>> Not entirely sure - those were pointed out as types with missing debug info, but there might be more. I tried looking for types in libc++ that have a `value_type` member, since those seem to follow a similar pattern. Possibly `__forward_list_node`?
>
> Since we'll need to identify this list of types either way (to attribute or to fix) might be worth making the list - I'd guess building all the libc++ tests with/without ctor homing and seeing which types go missing as a result might be informative?

I started looking into some diffs of debug info in libc++ tests, but it's pretty hard to tell what's different - as far as I can see, there are just a bunch of `__hash_value_type`s and `__value_type`s.

If I look in Visual Studio's debug info (on a file where I just construct all the libc++ types) I get errors for `__list_node`, `__tree_node`, and `__hash_node`. That's probably about it, and if there end up being more, it should be pretty straightforward to fix those later?


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D97411



More information about the cfe-commits mailing list