When accessing a bit-field, a thread may inadvertently access a separate bit-field in adjacent memory. This is This is because compilers are allowed to store multiple bit-fields in one addressable storage unit. Consequently, data races may exist not just on a bit-field accessed by multiple threads but also on other bit-fields sharing the same byte or word. A similar problem is discussed in CON00-C. Avoid race conditions with multiple threads, but this issue can be harder to diagnose because it is not immediately obvious that the same memory location is being modified.
...