https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114928
Bug ID: 114928 Summary: #pragma packed(push,1) should give the same warning as __attribute__((packed)) Product: gcc Version: 13.2.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: dhylands at gmail dot com Target Milestone: --- Created attachment 58091 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=58091&action=edit File that compiles with no warnings I'm using the ARM Toolchain arm-gnu-toolchain-13.2.Rel1-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu-g++ running on Ubuntu 20.04 If I delcare my structure using: struct Foo { char y; int x; } __attribute__((packed)); then the compiler correctly gives me a warning about taking the address of a packed member: warning: taking address of packed member of ‘Foo’ may result in an unaligned pointer value [-Waddress-of-packed-member] However, if I change the structure to use #pragma pack(push, 1) #pragma pack(push, 1) struct Foo { char y; int x; }; #pragma pack(pop) then I don't get the warning (and my bug is that it should give the same warning). In either case the member offsets and structure size are the same.