jankratochvil added a comment.

In D101237#2714971 <https://reviews.llvm.org/D101237#2714971>, @teemperor wrote:

> grep tells me that attribute also influences a bunch of other things in 
> subtle ways (It seems to potentially influence ABIs and Obj-C encodings?) and 
> we don't really know what other things this might influence in the future. So 
> I have the suspicion that putting that attr on all record fields might break 
> something in a subtle way.

I have a similar feeling but without a proof of anything ...

> In any case, what LLDB is usually doing is these situations is inferring from 
> the existing debug information. I assume by looking at the 
> `DW_AT_data_member_locations` values we could determine what the 
> no_unique_address fields are in our record (and then only put the attributes 
> on that)?

... LLDB can become overcomplicated as if you remove the 
`[[no_unique_address]]` from this testcase's `class B` the only effect on DWARF 
is for `class C`:

   0x00000033:   DW_TAG_structure_type
                   DW_AT_calling_convention       (DW_CC_pass_by_value)
                   DW_AT_name     ("C")
  -                DW_AT_byte_size        (0x01)
  +                DW_AT_byte_size        (0x02)
                   DW_AT_decl_file        ("uniqX.C")
                   DW_AT_decl_line        (5)
  
   0x0000003c:     DW_TAG_inheritance
                     DW_AT_type   (0x0000004f "B")
                     DW_AT_data_member_location   (0x00)
  
   0x00000042:     DW_TAG_member
                     DW_AT_name   ("c")
                     DW_AT_type   (0x0000006e "char")
                     DW_AT_decl_file      ("uniqX.C")
                     DW_AT_decl_line      (6)
  -                  DW_AT_data_member_location   (0x00)
  +                  DW_AT_data_member_location   (0x01)
  
   0x0000004e:     NULL

As LLDB could be already using `class B` as `CompilerType` LLDB will need to 
create a second/new `CompilerType` for `class B` when creating `CompilerType` 
for `class C`.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D101237

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

Reply via email to