digitalmars.D.bugs - [Issue 22955] New: importC: wrong alignof for D struct with
- d-bugmail puremagic.com (27/27) Mar 29 2022 https://issues.dlang.org/show_bug.cgi?id=22955
https://issues.dlang.org/show_bug.cgi?id=22955 Issue ID: 22955 Summary: importC: wrong alignof for D struct with specified alignment Product: D Version: D2 Hardware: All OS: All Status: NEW Keywords: ImportC Severity: normal Priority: P1 Component: dmd Assignee: nobody puremagic.com Reporter: duser neet.fi CC: duser neet.fi using the "align (16) struct __uint128_t" struct from __builtins.di: _Static_assert( _Alignof(__uint128_t) == 16, "" ); // fail it gives the size of a pointer (4 or 8), same as if align() wasn't used it has the correct alignment in D: import __builtins; pragma(msg, __uint128_t.alignof); // 16 _Alignas() in C doesn't have the problem: struct S { _Alignas(16) unsigned long long a; unsigned long long b; }; _Static_assert( _Alignof(struct S) == 16, "this works" ); _Static_assert( sizeof(struct S) == 16, "this works" ); --
Mar 29 2022