Ah, in the sense that you want to be able to derive new types based on
the DWARF?
Fair enough.

Raphael's suggestion seems reasonable to me.

On Mon, Jun 7, 2021 at 11:20 AM Jan Kratochvil
<jan.kratoch...@redhat.com> wrote:
>
> On Mon, 07 Jun 2021 20:11:16 +0200, David Blaikie via Dwarf-Discuss wrote:
> > On Mon, Jun 7, 2021 at 10:58 AM Jan Kratochvil via Dwarf-Discuss 
> > <dwarf-discuss@lists.dwarfstd.org> wrote:
> > >
> > > clang-12 will create the same DWARF for class B with [[no_unique_address]]
> > > either present or not. Despite that class C derived from B has different
> > > layout depending on from which class B it gets derived
> >
> > Why is this ^ a problem? The layout seems accurate - in that 'a'
> > shares its address with 'c' - so both members having the same offset
> > seems like an accurate representation of the layout of the struct?
>
> $ echo 'struct A {}; struct B { [[no_unique_address]] A a; } b;'|clang -Wall 
> -g -c -o a.o -x c++ -;lldb ./a.o
> (lldb) expr -- struct C:B{char c;};&((C *)nullptr)->c);
> (lldb) expr -- struct C:B{char c;};sizeof(C);
>
> Actual:
> (char *) $0 = 0x0000000000000001 ""
> (unsigned long) $1 = 2
>
> Expected:
> (char *) $0 = 0x0000000000000000
> (unsigned long) $1 = 1
>
>
> Jan
>
_______________________________________________
Dwarf-Discuss mailing list
Dwarf-Discuss@lists.dwarfstd.org
http://lists.dwarfstd.org/listinfo.cgi/dwarf-discuss-dwarfstd.org

Reply via email to