This is the mail archive of the
mailing list for the GCC project.
Re: [patch 4/4] -fstrict-volatile-bitfields cleanup v3: remove from defaults on all targets
- From: Sandra Loosemore <sandra at codesourcery dot com>
- To: DJ Delorie <dj at redhat dot com>
- Cc: <gcc-patches at gcc dot gnu dot org>
- Date: Mon, 1 Jul 2013 08:58:55 -0600
- Subject: Re: [patch 4/4] -fstrict-volatile-bitfields cleanup v3: remove from defaults on all targets
- References: <51D0F6A0 dot 4010307 at codesourcery dot com> <201307010332 dot r613WeJJ017250 at greed dot delorie dot com>
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
This patch will, or course, silently and obscurely break existing
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.