Jan Kara <j...@suse.cz> writes: > we've spotted the following mismatch between what kernel folks expect > from a compiler and what GCC really does, resulting in memory corruption on > some architectures. Consider the following structure: > struct x { > long a; > unsigned int b1; > unsigned int b2:1; > };
If this structure were volatile, you could try -fstrict-volatile-bitfields, which forces GCC to use the C type to define the access width, instead of doing whatever it thinks is optimal. Note: that flag is enabled by default for some targets already, most notably ARM.