http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50521
--- Comment #2 from Tomohiro Kashiwada <kikairoya at gmail dot com> 2011-09-26 11:42:37 UTC --- Variable 'bitfield' declared as volatile, so all bitfield's members are volatile. Even if declare 'bits' as volatile, gcc dumps same code. However, adding option -fno-strict-volatile-bitfields instead of -fstrict-volatile-bitfields, gcc ignores type of bit-field.