/* 警告: A:e5784: 4bitの符号有ビットフィールドと15(5bitの値)の比較は常に偽になります */
struct X { int b : 4; }; void func(X *x) { /* 符号有で15を表すためには5bit必要なので、 4bitの符号付きフィールドでは表現不可 */ if(x->b == 0xF) { … } }
解説 ビットフィールドで表す事が出来る値の範囲外の値と比較しているため、 常に同じ結果になり意味がありません。比較値かビットフィールドのサイズを間違えているのかもしれません。