The following program should not compile.

class C
{
  auto union  // bad
    {
      int a;
    };
  register union  // bad
    {
      int b;
    };
  static union  // bad
    {
      int c;
    };
  extern union  // bad
    {
      int d;
    };
  mutable union  // bad
    {
      int e;
    };
};

auto, register, and extern are not normally allowed in classes.

static and mutable might be allowed on other members, but not on anonymous
unions. See C++ standard clause 9.5/3.


-- 
           Summary: Storage classes on anonymous unions in classes
           Product: gcc
           Version: 4.1.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: andrew dot stubbs at st dot com


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

Reply via email to