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.

-- 
           Summary: Attributes following enumeration declaration ignored
           Product: gcc
           Version: 4.0.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: austern at apple dot com
                CC: gcc-bugs at gcc dot gnu dot org
 GCC build triplet: powerpc-apple-darwin7.5.0
  GCC host triplet: powerpc-apple-darwin7.5.0
GCC target triplet: powerpc-apple-darwin7.5.0


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18165

Reply via email to