Memory corruption due to word sharing
DJ Delorie
dj@redhat.com
Fri Feb 3 06:46:00 GMT 2012
Jan Kara <jack@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.
More information about the Gcc
mailing list