[core.reflect] Detect Padding in structs or classes
uplink.coder at googlemail.com
Fri Oct 1 19:25:36 UTC 2021
On Friday, 1 October 2021 at 18:30:35 UTC, Stefan Koch wrote:
> On Friday, 1 October 2021 at 17:35:24 UTC, Stefan Koch wrote:
>> There has been a PR to introduce `-vpadding` into dmd which
>> warns on padding in structs.
>> This can actually be trivially done by core reflect.
> Ah dang.
> This code will be bogus for classes as we need it iterate the
> base classes for this
> Which we can do but not when visiting the superclass of both
> Struct and Class Declarations.
> We need to specialize for classes.
> And add the following code to the visitor
> override void visit(ClassDeclaration cd)
> ulong lastOffset;
Ah double dang.
This code needs to be fixed.
For classes we start at offset 16 because of class-metadata like
the vtbl and monitor being prepended. So it should read
`ulong lastOffset = 16`
More information about the Digitalmars-d