← Back to index
|
Original Bugzilla link
Bug 24733 – ImportC: `#pragma pack(pop)` restores wrong alignment
Status
RESOLVED
Resolution
FIXED
Severity
normal
Priority
P1
Component
dmd
Product
D
Version
D2
Platform
x86_64
OS
Linux
Creation time
2024-08-30T15:44:36Z
Last change time
2024-08-31T19:32:03Z
Keywords
ImportC, pull
Assigned to
No Owner
Creator
Tim
Comments
Comment #0
by tim.dlang — 2024-08-30T15:44:36Z
``` struct S1 {unsigned char c;int i;}; #pragma pack(push, 2) struct S2 {unsigned char c;int i;}; #pragma pack(push, 1) struct S3 {unsigned char c;int i;}; #pragma pack(pop) struct S4 {unsigned char c;int i;}; #pragma pack(pop) struct S5 {unsigned char c;int i;}; _Static_assert(_Alignof(struct S1) == 4, "alignof S1"); _Static_assert(_Alignof(struct S2) == 2, "alignof S2"); _Static_assert(_Alignof(struct S3) == 1, "alignof S3"); _Static_assert(_Alignof(struct S4) == 2, "alignof S4"); // fails _Static_assert(_Alignof(struct S5) == 4, "alignof S5"); _Static_assert(sizeof(struct S1) == 8, "sizeof S1"); _Static_assert(sizeof(struct S2) == 6, "sizeof S2"); _Static_assert(sizeof(struct S3) == 5, "sizeof S3"); _Static_assert(sizeof(struct S4) == 6, "sizeof S4"); // fails _Static_assert(sizeof(struct S5) == 8, "sizeof S5"); ```
Comment #1
by dlang-bot — 2024-08-30T15:47:24Z
@tim-dlang created dlang/dmd pull request #16821 "Fix bugzilla 24733 - ImportC: `#pragma pack(pop)` restores wrong alignment" fixing this issue: - Fix bugzilla 24733 - ImportC: `#pragma pack(pop)` restores wrong alignment
https://github.com/dlang/dmd/pull/16821
Comment #2
by dlang-bot — 2024-08-31T19:32:03Z
dlang/dmd pull request #16821 "Fix bugzilla 24733 - ImportC: `#pragma pack(pop)` restores wrong alignment" was merged into master: - 626c0a5ab70f4f79f970157656fa00fc1fd3e722 by Tim Schendekehl: Fix bugzilla 24733 - ImportC: `#pragma pack(pop)` restores wrong alignment
https://github.com/dlang/dmd/pull/16821