Alignment of struct containing SIMD field - GDC

Iain Buclaw via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Wed Mar 1 14:15:59 PST 2017


On Wednesday, 1 March 2017 at 19:09:24 UTC, Johan Engelen wrote:
> On Wednesday, 1 March 2017 at 18:34:16 UTC, Iain Buclaw wrote:
>>
>> Simple test case would be:
>>
>> struct vec_struct {
>>     bool b2;
>>     struct {
>>         bool b;
>>         int8 field;
>>     }
>> }
>>
>> static assert(vec_struct.b.offsetof == 32);
>> static assert(vec_struct.field.offsetof == 64);
>
> With explicit align(32), it works:
> https://godbolt.org/g/3GjOHW
>
> - Johan

Well obviously, because it adheres to explicit alignment.  The 
compiler just has the wrong idea of how default alignment should 
work.

Raised bug here, and I'm raising a PR now also. 
https://issues.dlang.org/show_bug.cgi?id=17237


More information about the Digitalmars-d-learn mailing list