I do regard the alignment settings for structs, unions, classes as important as the signature of functions.
compilation of structs in the scope of different #pragma pack([push], n) produces errors that are hard to understand. The linker could produce errors or warnings when combining compilation units with symbols that differ only in their memory alignment. The compiler's warning about impaired #pragma pack(push,n) #pragma pack(pop) doesn't help in such cases. -- Summary: #pragma pack([push,] n) should be coded in the signature Product: gcc Version: 4.3.1 Status: UNCONFIRMED Severity: enhancement Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: gerolf dot wendland at nsn dot com http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40527