GC and void[N] in struct
vit
vit at vit.vit
Mon Aug 6 19:31:44 UTC 2018
On Monday, 6 August 2018 at 19:17:58 UTC, nkm1 wrote:
> On Monday, 6 August 2018 at 18:22:24 UTC, vit wrote:
>> Hello,
>> I have this struct:
>>
>> struct S{
>> uint kind;
>> void[N] data_;
>>
>> }
>>
>> Instances of struct S are allocated by standard GC new and
>> S.data_ can contain pointers/ranges to GC allocated data.
>> If is GC disabled then program run fine. But when is GC
>> enabled then it fail randomly.
>>
>> If the definition of S look like this:
>>
>> struct S{
>> void[N] data_;
>> uint kind;
>> }
>>
>> then program run fine with GC.enable.
>>
>> Whats the problem? Something with alignment?
>
> Probably. Try something like:
>
> struct S
> {
> uint kind;
> align((void *).alignof) void[N] data_;
> }
>
> And see if it solves the problem.
align((void *).alignof) work, thanks.
More information about the Digitalmars-d-learn
mailing list