Consider the following program: m> enum X { a = 1 }; enum Y { b = 1 } __attribute__((packed)); int main() { using namespace std; cout << "default: " << sizeof(enum X) << endl; cout << "with attribute: " << sizeof(enum Y) << endl; } The C++ compiler accepts this. However, the attribute on enum Y is ignored. As running this program shows, the size of enum Y is the same as the size of enum X. Note that the test suite contains a test to make sure that an attribute in this position is accepted. (parse/parse3.C) We just failed to make sure that the attribute really did anything.
*** This bug has been marked as a duplicate of 14124 ***