On 06/30/2013 09:32 PM, DJ Delorie wrote:

Given how much trouble I went through to make it the default, I'd
rather not revert all that work...  especially since the flag is
*required* for proper operation of the hardware on many of these
targets.

This patch will, or course, silently and obscurely break existing
code.

My previous argument to this effect fell on deaf ears.

The sad truth is that strict volatile bitfields are already broken on ARM and other targets, and have been broken ever since the bit range support was added to support the new C/C++ memory model in gcc 4.7-ish. The current default behavior on ARM does not conform to either the ABI or the C/C++ model, so it's the worst of both worlds.

The choice appears to be to continue to have broken volatile bitfields on ARM with no way for users to make them conform to the ABI, or to change things so that they conform to the ABI if you specify -fstrict-volatile-bitfields explicitly and to the C/C++ standard by default, without that option.

-Sandra

Reply via email to