struct { enum { A , B } e : 1; } x;
x.e = B;
assert( x.e == B );

今の仕事で使っている、とある古めのコンパイラで
このassertが失敗してびびったのですが、
規格で許された動作なのでしょうか?