summaryrefslogtreecommitdiff
path: root/gcc/config/rx/rx.c
diff options
context:
space:
mode:
authorbernds <bernds@138bc75d-0d04-0410-961f-82ee72b054a4>2011-12-20 16:46:22 +0000
committerbernds <bernds@138bc75d-0d04-0410-961f-82ee72b054a4>2011-12-20 16:46:22 +0000
commit941a2396e3d2af2d96a31e670b913c4331bee05b (patch)
treed0a86f6d0ca1212b434d7c1b46b1acf3cc04c3b6 /gcc/config/rx/rx.c
parenta3248fc4f63a569631daa30af5755c26cf0cdc93 (diff)
downloadgcc-941a2396e3d2af2d96a31e670b913c4331bee05b.tar.gz
gcc/
* expr.c (store_field): Avoid a direct store if the mode is larger than the size of the bit field. * stor-layout.c (layout_decl): If flag_strict_volatile_bitfields, treat non-volatile bit fields like volatile ones. * toplev.c (process_options): Disallow combination of -fstrict-volatile-bitfields and ABI versions less than 2. * config/arm/arm.c (arm_option_override): Don't enable flag_strict_volatile_bitfields if the ABI version is less than 2. * config/h8300/h8300.c (h8300_option_override): Likewise. * config/rx/rx.c (rx_option_override): Likewise. * config/m32c/m32c.c (m32c_option_override): Likewise. * config/sh/sh.c (sh_option_override): Likewise. gcc/testsuite/ * gcc.target/arm/volatile-bitfields-4.c: New test. * c-c++-common/abi-bf.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@182545 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/rx/rx.c')
-rw-r--r--gcc/config/rx/rx.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/config/rx/rx.c b/gcc/config/rx/rx.c
index c9720eb3e15..4a73285b338 100644
--- a/gcc/config/rx/rx.c
+++ b/gcc/config/rx/rx.c
@@ -2571,7 +2571,7 @@ rx_option_override (void)
}
/* This target defaults to strict volatile bitfields. */
- if (flag_strict_volatile_bitfields < 0)
+ if (flag_strict_volatile_bitfields < 0 && abi_version_at_least(2))
flag_strict_volatile_bitfields = 1;
rx_override_options_after_change ();