RE: [PATCH][4.8] Backport strict-volatile-bitfields fixes to 4.8

2014-02-26 Thread Joey Ye
Committed to ARM/embedded-4_8-branch

Still pending to gcc-4_8-branch.

> -Original Message-
> From: Joey Ye [mailto:joey...@arm.com]
> Sent: 27 February 2014 13:53
> To: 'ja...@redhat.com'; 'gcc-patches@gcc.gnu.org'
> Subject: RE: [PATCH][4.8] Backport strict-volatile-bitfields fixes to 4.8
> 
> Ping ^ 5
> 
> > -Original Message-
> > From: Joey Ye [mailto:joey...@arm.com]
> > Sent: 19 February 2014 17:22
> > To: 'ja...@redhat.com'; gcc-patches@gcc.gnu.org
> > Subject: RE: [PATCH][4.8] Backport strict-volatile-bitfields fixes to
> > 4.8
> >
> > Ping ^ 4
> >
> > > -Original Message-
> > > From: Joey Ye [mailto:joey...@arm.com]
> > > Sent: Friday, February 14, 2014 9:58
> > > To: gcc-patches@gcc.gnu.org
> > > Subject: RE: [PATCH][4.8] Backport strict-volatile-bitfields fixes
> > > to
> > > 4.8
> > >
> > > Ping ^3
> > >
> > > These fixes are very important to 4.8 ARM embedded users, as they
> > > rely on strict volatile bitfields a lot. Please let them in 4.8.
> > >
> > > > -Original Message-
> > > > From: Joey Ye [mailto:joey...@arm.com]
> > > > Sent: Saturday, February 08, 2014 10:42
> > > > To: gcc-patches@gcc.gnu.org
> > > > Subject: RE: [PATCH][4.8] Backport strict-volatile-bitfields fixes
> > > > to
> > > > 4.8
> > > >
> > > > Ping ^ 2
> > > >
> > > > OK to 4.8?
> > > >
> > > > > -Original Message-
> > > > > From: Joey Ye [mailto:joey...@arm.com]
> > > > > Sent: Monday, January 20, 2014 10:47
> > > > > To: gcc-patches@gcc.gnu.org
> > > > > Subject: RE: [PATCH][4.8] Backport strict-volatile-bitfields
> > > > > fixes to 4.8
> > > > >
> > > > > Ping
> > > > >
> > > > > > -Original Message-
> > > > > > From: Joey Ye [mailto:joey...@arm.com]
> > > > > > Sent: Thursday, January 16, 2014 16:28
> > > > > > To: gcc-patches@gcc.gnu.org
> > > > > > Subject: [PATCH][4.8] Backport strict-volatile-bitfields fixes
> > > > > > to
> > > > > > 4.8
> > > > > >
> > > > > > 4.8 has a number of strict-volatile-bitfields issues that can
> > > > > > be fixed by following patches.
> > > > > > trunk@205899, 205898, 205897, 205896, 203003
> > > > > >
> > > > > > Tested on x86_64 and arm without regression.
> > > > > >
> > > > > > OK to 4.8?
> > > > > >
> > > > > > 2013-09-28  Sandra Loosemore  
> > > > > >
> > > > > > gcc/
> > > > > > * expr.h (extract_bit_field): Remove packedp parameter.
> > > > > > * expmed.c (extract_fixed_bit_field): Remove packedp
> > parameter
> > > > > > from forward declaration.
> > > > > > (store_split_bit_field): Remove packedp arg from calls
to
> > > > > > extract_fixed_bit_field.
> > > > > > (extract_bit_field_1): Remove packedp parameter and
packedp
> > > > > > argument from recursive calls and calls to
> extract_fixed_bit_field.
> > > > > > (extract_bit_field): Remove packedp parameter and
> > corresponding
> > > > > > arg to extract_bit_field_1.
> > > > > > (extract_fixed_bit_field): Remove packedp parameter.
> > > > > > Remove
> > > > code
> > > > > > to issue warnings.
> > > > > > (extract_split_bit_field): Remove packedp arg from call
to
> > > > > > extract_fixed_bit_field.
> > > > > > * expr.c (emit_group_load_1): Adjust calls to
extract_bit_field.
> > > > > > (copy_blkmode_from_reg): Likewise.
> > > > > > (copy_blkmode_to_reg): Likewise.
> > > > > > (read_complex_part): Likewise.
> > > > > > (store_field): Likewise.
> > > > > > (expand_expr_real_1): Likewise.
> > > > > > * calls.c (store_unaligned_arguments_into_pseudos):
Adjust
> call
> > > > > > to extract_bit_field.
> > > > > > * config/

RE: [PATCH][4.8] Backport strict-volatile-bitfields fixes to 4.8

2014-02-26 Thread Joey Ye
Ping ^ 5

> -Original Message-
> From: Joey Ye [mailto:joey...@arm.com]
> Sent: 19 February 2014 17:22
> To: 'ja...@redhat.com'; gcc-patches@gcc.gnu.org
> Subject: RE: [PATCH][4.8] Backport strict-volatile-bitfields fixes to 4.8
> 
> Ping ^ 4
> 
> > -Original Message-
> > From: Joey Ye [mailto:joey...@arm.com]
> > Sent: Friday, February 14, 2014 9:58
> > To: gcc-patches@gcc.gnu.org
> > Subject: RE: [PATCH][4.8] Backport strict-volatile-bitfields fixes to
> > 4.8
> >
> > Ping ^3
> >
> > These fixes are very important to 4.8 ARM embedded users, as they rely
> > on strict volatile bitfields a lot. Please let them in 4.8.
> >
> > > -Original Message-
> > > From: Joey Ye [mailto:joey...@arm.com]
> > > Sent: Saturday, February 08, 2014 10:42
> > > To: gcc-patches@gcc.gnu.org
> > > Subject: RE: [PATCH][4.8] Backport strict-volatile-bitfields fixes
> > > to
> > > 4.8
> > >
> > > Ping ^ 2
> > >
> > > OK to 4.8?
> > >
> > > > -----Original Message-
> > > > From: Joey Ye [mailto:joey...@arm.com]
> > > > Sent: Monday, January 20, 2014 10:47
> > > > To: gcc-patches@gcc.gnu.org
> > > > Subject: RE: [PATCH][4.8] Backport strict-volatile-bitfields fixes
> > > > to 4.8
> > > >
> > > > Ping
> > > >
> > > > > -Original Message-
> > > > > From: Joey Ye [mailto:joey...@arm.com]
> > > > > Sent: Thursday, January 16, 2014 16:28
> > > > > To: gcc-patches@gcc.gnu.org
> > > > > Subject: [PATCH][4.8] Backport strict-volatile-bitfields fixes
> > > > > to
> > > > > 4.8
> > > > >
> > > > > 4.8 has a number of strict-volatile-bitfields issues that can be
> > > > > fixed by following patches.
> > > > > trunk@205899, 205898, 205897, 205896, 203003
> > > > >
> > > > > Tested on x86_64 and arm without regression.
> > > > >
> > > > > OK to 4.8?
> > > > >
> > > > > 2013-09-28  Sandra Loosemore  
> > > > >
> > > > > gcc/
> > > > > * expr.h (extract_bit_field): Remove packedp parameter.
> > > > > * expmed.c (extract_fixed_bit_field): Remove packedp
> parameter
> > > > > from forward declaration.
> > > > > (store_split_bit_field): Remove packedp arg from calls to
> > > > > extract_fixed_bit_field.
> > > > > (extract_bit_field_1): Remove packedp parameter and
packedp
> > > > > argument from recursive calls and calls to
extract_fixed_bit_field.
> > > > > (extract_bit_field): Remove packedp parameter and
> corresponding
> > > > > arg to extract_bit_field_1.
> > > > > (extract_fixed_bit_field): Remove packedp parameter.
> > > > > Remove
> > > code
> > > > > to issue warnings.
> > > > > (extract_split_bit_field): Remove packedp arg from call to
> > > > > extract_fixed_bit_field.
> > > > > * expr.c (emit_group_load_1): Adjust calls to
extract_bit_field.
> > > > > (copy_blkmode_from_reg): Likewise.
> > > > > (copy_blkmode_to_reg): Likewise.
> > > > > (read_complex_part): Likewise.
> > > > > (store_field): Likewise.
> > > > > (expand_expr_real_1): Likewise.
> > > > > * calls.c (store_unaligned_arguments_into_pseudos): Adjust
call
> > > > > to extract_bit_field.
> > > > > * config/tilegx/tilegx.c (tilegx_expand_unaligned_load):
Adjust
> > > > > call to extract_bit_field.
> > > > > * config/tilepro/tilepro.c
(tilepro_expand_unaligned_load):
> Adjust
> > > > > call to extract_bit_field.
> > > > > * doc/invoke.texi (Code Gen Options): Remove mention of
> > warnings
> > > > > and special packedp behavior from
-fstrict-volatile-bitfields
> > > > > documentation.
> > > > >
> > > > > 2013-12-11  Bernd Edlinger  
> > > > >
> > > > > * expr.c (expand_assignment): Remove dependency on
> > > > > flag_strict_volatile_bitfields. Always set the memory
> > >

RE: [PATCH][4.8] Backport strict-volatile-bitfields fixes to 4.8

2014-02-19 Thread Joey Ye
Ping ^ 4

> -Original Message-
> From: Joey Ye [mailto:joey...@arm.com]
> Sent: Friday, February 14, 2014 9:58
> To: gcc-patches@gcc.gnu.org
> Subject: RE: [PATCH][4.8] Backport strict-volatile-bitfields fixes to 4.8
> 
> Ping ^3
> 
> These fixes are very important to 4.8 ARM embedded users, as they rely on
> strict volatile bitfields a lot. Please let them in 4.8.
> 
> > -Original Message-
> > From: Joey Ye [mailto:joey...@arm.com]
> > Sent: Saturday, February 08, 2014 10:42
> > To: gcc-patches@gcc.gnu.org
> > Subject: RE: [PATCH][4.8] Backport strict-volatile-bitfields fixes to
> > 4.8
> >
> > Ping ^ 2
> >
> > OK to 4.8?
> >
> > > -Original Message-
> > > From: Joey Ye [mailto:joey...@arm.com]
> > > Sent: Monday, January 20, 2014 10:47
> > > To: gcc-patches@gcc.gnu.org
> > > Subject: RE: [PATCH][4.8] Backport strict-volatile-bitfields fixes
> > > to 4.8
> > >
> > > Ping
> > >
> > > > -Original Message-
> > > > From: Joey Ye [mailto:joey...@arm.com]
> > > > Sent: Thursday, January 16, 2014 16:28
> > > > To: gcc-patches@gcc.gnu.org
> > > > Subject: [PATCH][4.8] Backport strict-volatile-bitfields fixes to
> > > > 4.8
> > > >
> > > > 4.8 has a number of strict-volatile-bitfields issues that can be
> > > > fixed by following patches.
> > > > trunk@205899, 205898, 205897, 205896, 203003
> > > >
> > > > Tested on x86_64 and arm without regression.
> > > >
> > > > OK to 4.8?
> > > >
> > > > 2013-09-28  Sandra Loosemore  
> > > >
> > > > gcc/
> > > > * expr.h (extract_bit_field): Remove packedp parameter.
> > > > * expmed.c (extract_fixed_bit_field): Remove packedp
parameter
> > > > from forward declaration.
> > > > (store_split_bit_field): Remove packedp arg from calls to
> > > > extract_fixed_bit_field.
> > > > (extract_bit_field_1): Remove packedp parameter and packedp
> > > > argument from recursive calls and calls to
extract_fixed_bit_field.
> > > > (extract_bit_field): Remove packedp parameter and
corresponding
> > > > arg to extract_bit_field_1.
> > > > (extract_fixed_bit_field): Remove packedp parameter.
> > > > Remove
> > code
> > > > to issue warnings.
> > > > (extract_split_bit_field): Remove packedp arg from call to
> > > > extract_fixed_bit_field.
> > > > * expr.c (emit_group_load_1): Adjust calls to
extract_bit_field.
> > > > (copy_blkmode_from_reg): Likewise.
> > > > (copy_blkmode_to_reg): Likewise.
> > > > (read_complex_part): Likewise.
> > > > (store_field): Likewise.
> > > > (expand_expr_real_1): Likewise.
> > > > * calls.c (store_unaligned_arguments_into_pseudos): Adjust
call
> > > > to extract_bit_field.
> > > > * config/tilegx/tilegx.c (tilegx_expand_unaligned_load):
Adjust
> > > > call to extract_bit_field.
> > > > * config/tilepro/tilepro.c (tilepro_expand_unaligned_load):
Adjust
> > > > call to extract_bit_field.
> > > > * doc/invoke.texi (Code Gen Options): Remove mention of
> warnings
> > > > and special packedp behavior from
-fstrict-volatile-bitfields
> > > > documentation.
> > > >
> > > > 2013-12-11  Bernd Edlinger  
> > > >
> > > > * expr.c (expand_assignment): Remove dependency on
> > > > flag_strict_volatile_bitfields. Always set the memory
> > > > access mode.
> > > > (expand_expr_real_1): Likewise.
> > > >
> > > > 2013-12-11  Sandra Loosemore  
> > > >
> > > > PR middle-end/23623
> > > > PR middle-end/48784
> > > > PR middle-end/56341
> > > > PR middle-end/56997
> > > >
> > > > gcc/
> > > > * expmed.c (strict_volatile_bitfield_p): New function.
> > > > (store_bit_field_1): Don't special-case strict volatile
> > > > bitfields here.
> > > > (store_bit_field): Handle strict volatile bitfields here
instead.
> > > > (stor

RE: [PATCH][4.8] Backport strict-volatile-bitfields fixes to 4.8

2014-02-13 Thread Joey Ye
Ping ^3

These fixes are very important to 4.8 ARM embedded users, as they rely on
strict volatile bitfields a lot. Please let them in 4.8.

> -Original Message-
> From: Joey Ye [mailto:joey...@arm.com]
> Sent: Saturday, February 08, 2014 10:42
> To: gcc-patches@gcc.gnu.org
> Subject: RE: [PATCH][4.8] Backport strict-volatile-bitfields fixes to 4.8
> 
> Ping ^ 2
> 
> OK to 4.8?
> 
> > -Original Message-
> > From: Joey Ye [mailto:joey...@arm.com]
> > Sent: Monday, January 20, 2014 10:47
> > To: gcc-patches@gcc.gnu.org
> > Subject: RE: [PATCH][4.8] Backport strict-volatile-bitfields fixes to
4.8
> >
> > Ping
> >
> > > -Original Message-
> > > From: Joey Ye [mailto:joey...@arm.com]
> > > Sent: Thursday, January 16, 2014 16:28
> > > To: gcc-patches@gcc.gnu.org
> > > Subject: [PATCH][4.8] Backport strict-volatile-bitfields fixes to 4.8
> > >
> > > 4.8 has a number of strict-volatile-bitfields issues that can be fixed
> > > by following patches.
> > > trunk@205899, 205898, 205897, 205896, 203003
> > >
> > > Tested on x86_64 and arm without regression.
> > >
> > > OK to 4.8?
> > >
> > > 2013-09-28  Sandra Loosemore  
> > >
> > > gcc/
> > > * expr.h (extract_bit_field): Remove packedp parameter.
> > > * expmed.c (extract_fixed_bit_field): Remove packedp parameter
> > > from forward declaration.
> > > (store_split_bit_field): Remove packedp arg from calls to
> > > extract_fixed_bit_field.
> > > (extract_bit_field_1): Remove packedp parameter and packedp
> > > argument from recursive calls and calls to
extract_fixed_bit_field.
> > > (extract_bit_field): Remove packedp parameter and
corresponding
> > > arg to extract_bit_field_1.
> > > (extract_fixed_bit_field): Remove packedp parameter.  Remove
> code
> > > to issue warnings.
> > > (extract_split_bit_field): Remove packedp arg from call to
> > > extract_fixed_bit_field.
> > > * expr.c (emit_group_load_1): Adjust calls to
extract_bit_field.
> > > (copy_blkmode_from_reg): Likewise.
> > > (copy_blkmode_to_reg): Likewise.
> > > (read_complex_part): Likewise.
> > > (store_field): Likewise.
> > > (expand_expr_real_1): Likewise.
> > > * calls.c (store_unaligned_arguments_into_pseudos): Adjust
call
> > > to extract_bit_field.
> > > * config/tilegx/tilegx.c (tilegx_expand_unaligned_load):
Adjust
> > > call to extract_bit_field.
> > > * config/tilepro/tilepro.c (tilepro_expand_unaligned_load):
Adjust
> > > call to extract_bit_field.
> > > * doc/invoke.texi (Code Gen Options): Remove mention of
warnings
> > > and special packedp behavior from -fstrict-volatile-bitfields
> > > documentation.
> > >
> > > 2013-12-11  Bernd Edlinger  
> > >
> > > * expr.c (expand_assignment): Remove dependency on
> > > flag_strict_volatile_bitfields. Always set the memory
> > > access mode.
> > > (expand_expr_real_1): Likewise.
> > >
> > > 2013-12-11  Sandra Loosemore  
> > >
> > > PR middle-end/23623
> > > PR middle-end/48784
> > > PR middle-end/56341
> > > PR middle-end/56997
> > >
> > > gcc/
> > > * expmed.c (strict_volatile_bitfield_p): New function.
> > > (store_bit_field_1): Don't special-case strict volatile
> > > bitfields here.
> > > (store_bit_field): Handle strict volatile bitfields here
instead.
> > > (store_fixed_bit_field): Don't special-case strict volatile
> > > bitfields here.
> > > (extract_bit_field_1): Don't special-case strict volatile
> > > bitfields here.
> > > (extract_bit_field): Handle strict volatile bitfields here
instead.
> > > (extract_fixed_bit_field): Don't special-case strict volatile
> > > bitfields here.  Simplify surrounding code to resemble that in
> > > store_fixed_bit_field.
> > > * doc/invoke.texi (Code Gen Options): Update
> > > -fstrict-volatile-bitfields description.
> > >
> > > gcc/testsuite/
> > >   

RE: [PATCH][4.8] Backport strict-volatile-bitfields fixes to 4.8

2014-02-07 Thread Joey Ye
Ping ^ 2

OK to 4.8?

> -Original Message-
> From: Joey Ye [mailto:joey...@arm.com]
> Sent: Monday, January 20, 2014 10:47
> To: gcc-patches@gcc.gnu.org
> Subject: RE: [PATCH][4.8] Backport strict-volatile-bitfields fixes to 4.8
> 
> Ping
> 
> > -Original Message-
> > From: Joey Ye [mailto:joey...@arm.com]
> > Sent: Thursday, January 16, 2014 16:28
> > To: gcc-patches@gcc.gnu.org
> > Subject: [PATCH][4.8] Backport strict-volatile-bitfields fixes to 4.8
> >
> > 4.8 has a number of strict-volatile-bitfields issues that can be fixed
> > by following patches.
> > trunk@205899, 205898, 205897, 205896, 203003
> >
> > Tested on x86_64 and arm without regression.
> >
> > OK to 4.8?
> >
> > 2013-09-28  Sandra Loosemore  
> >
> > gcc/
> > * expr.h (extract_bit_field): Remove packedp parameter.
> > * expmed.c (extract_fixed_bit_field): Remove packedp parameter
> > from forward declaration.
> > (store_split_bit_field): Remove packedp arg from calls to
> > extract_fixed_bit_field.
> > (extract_bit_field_1): Remove packedp parameter and packedp
> > argument from recursive calls and calls to
extract_fixed_bit_field.
> > (extract_bit_field): Remove packedp parameter and corresponding
> > arg to extract_bit_field_1.
> > (extract_fixed_bit_field): Remove packedp parameter.  Remove
code
> > to issue warnings.
> > (extract_split_bit_field): Remove packedp arg from call to
> > extract_fixed_bit_field.
> > * expr.c (emit_group_load_1): Adjust calls to extract_bit_field.
> > (copy_blkmode_from_reg): Likewise.
> > (copy_blkmode_to_reg): Likewise.
> > (read_complex_part): Likewise.
> > (store_field): Likewise.
> > (expand_expr_real_1): Likewise.
> > * calls.c (store_unaligned_arguments_into_pseudos): Adjust call
> > to extract_bit_field.
> > * config/tilegx/tilegx.c (tilegx_expand_unaligned_load): Adjust
> > call to extract_bit_field.
> > * config/tilepro/tilepro.c (tilepro_expand_unaligned_load):
Adjust
> > call to extract_bit_field.
> > * doc/invoke.texi (Code Gen Options): Remove mention of warnings
> > and special packedp behavior from -fstrict-volatile-bitfields
> > documentation.
> >
> > 2013-12-11  Bernd Edlinger  
> >
> > * expr.c (expand_assignment): Remove dependency on
> > flag_strict_volatile_bitfields. Always set the memory
> > access mode.
> > (expand_expr_real_1): Likewise.
> >
> > 2013-12-11  Sandra Loosemore  
> >
> > PR middle-end/23623
> > PR middle-end/48784
> > PR middle-end/56341
> > PR middle-end/56997
> >
> > gcc/
> > * expmed.c (strict_volatile_bitfield_p): New function.
> > (store_bit_field_1): Don't special-case strict volatile
> > bitfields here.
> > (store_bit_field): Handle strict volatile bitfields here
instead.
> > (store_fixed_bit_field): Don't special-case strict volatile
> > bitfields here.
> > (extract_bit_field_1): Don't special-case strict volatile
> > bitfields here.
> > (extract_bit_field): Handle strict volatile bitfields here
instead.
> > (extract_fixed_bit_field): Don't special-case strict volatile
> > bitfields here.  Simplify surrounding code to resemble that in
> > store_fixed_bit_field.
> > * doc/invoke.texi (Code Gen Options): Update
> > -fstrict-volatile-bitfields description.
> >
> > gcc/testsuite/
> > * gcc.dg/pr23623.c: New test.
> > * gcc.dg/pr48784-1.c: New test.
> > * gcc.dg/pr48784-2.c: New test.
> > * gcc.dg/pr56341-1.c: New test.
> > * gcc.dg/pr56341-2.c: New test.
> > * gcc.dg/pr56997-1.c: New test.
> > * gcc.dg/pr56997-2.c: New test.
> > * gcc.dg/pr56997-3.c: New test.
> >
> > 2013-12-11  Bernd Edlinger  
> >  Sandra Loosemore  
> >
> > PR middle-end/23623
> > PR middle-end/48784
> > PR middle-end/56341
> > PR middle-end/56997
> > * expmed.c (strict_volatile_bitfield_p): Add bitregion_start
> > and bitregion_end parameters.  Test for compliance with C++
> > memory model.
> > (st

RE: [PATCH][4.8] Backport strict-volatile-bitfields fixes to 4.8

2014-01-19 Thread Joey Ye
Ping

> -Original Message-
> From: Joey Ye [mailto:joey...@arm.com]
> Sent: Thursday, January 16, 2014 16:28
> To: gcc-patches@gcc.gnu.org
> Subject: [PATCH][4.8] Backport strict-volatile-bitfields fixes to 4.8
> 
> 4.8 has a number of strict-volatile-bitfields issues that can be fixed by
> following patches.
> trunk@205899, 205898, 205897, 205896, 203003
> 
> Tested on x86_64 and arm without regression.
> 
> OK to 4.8?
> 
> 2013-09-28  Sandra Loosemore  
> 
> gcc/
> * expr.h (extract_bit_field): Remove packedp parameter.
> * expmed.c (extract_fixed_bit_field): Remove packedp parameter
> from forward declaration.
> (store_split_bit_field): Remove packedp arg from calls to
> extract_fixed_bit_field.
> (extract_bit_field_1): Remove packedp parameter and packedp
> argument from recursive calls and calls to
extract_fixed_bit_field.
> (extract_bit_field): Remove packedp parameter and corresponding
> arg to extract_bit_field_1.
> (extract_fixed_bit_field): Remove packedp parameter.  Remove code
> to issue warnings.
> (extract_split_bit_field): Remove packedp arg from call to
> extract_fixed_bit_field.
> * expr.c (emit_group_load_1): Adjust calls to extract_bit_field.
> (copy_blkmode_from_reg): Likewise.
> (copy_blkmode_to_reg): Likewise.
> (read_complex_part): Likewise.
> (store_field): Likewise.
> (expand_expr_real_1): Likewise.
> * calls.c (store_unaligned_arguments_into_pseudos): Adjust call
> to extract_bit_field.
> * config/tilegx/tilegx.c (tilegx_expand_unaligned_load): Adjust
> call to extract_bit_field.
> * config/tilepro/tilepro.c (tilepro_expand_unaligned_load): Adjust
> call to extract_bit_field.
> * doc/invoke.texi (Code Gen Options): Remove mention of warnings
> and special packedp behavior from -fstrict-volatile-bitfields
> documentation.
> 
> 2013-12-11  Bernd Edlinger  
> 
> * expr.c (expand_assignment): Remove dependency on
> flag_strict_volatile_bitfields. Always set the memory
> access mode.
> (expand_expr_real_1): Likewise.
> 
> 2013-12-11  Sandra Loosemore  
> 
> PR middle-end/23623
> PR middle-end/48784
> PR middle-end/56341
> PR middle-end/56997
> 
> gcc/
> * expmed.c (strict_volatile_bitfield_p): New function.
> (store_bit_field_1): Don't special-case strict volatile
> bitfields here.
> (store_bit_field): Handle strict volatile bitfields here instead.
> (store_fixed_bit_field): Don't special-case strict volatile
> bitfields here.
> (extract_bit_field_1): Don't special-case strict volatile
> bitfields here.
> (extract_bit_field): Handle strict volatile bitfields here
instead.
> (extract_fixed_bit_field): Don't special-case strict volatile
> bitfields here.  Simplify surrounding code to resemble that in
> store_fixed_bit_field.
> * doc/invoke.texi (Code Gen Options): Update
> -fstrict-volatile-bitfields description.
> 
> gcc/testsuite/
> * gcc.dg/pr23623.c: New test.
> * gcc.dg/pr48784-1.c: New test.
> * gcc.dg/pr48784-2.c: New test.
> * gcc.dg/pr56341-1.c: New test.
> * gcc.dg/pr56341-2.c: New test.
> * gcc.dg/pr56997-1.c: New test.
> * gcc.dg/pr56997-2.c: New test.
> * gcc.dg/pr56997-3.c: New test.
> 
> 2013-12-11  Bernd Edlinger  
>  Sandra Loosemore  
> 
> PR middle-end/23623
> PR middle-end/48784
> PR middle-end/56341
> PR middle-end/56997
> * expmed.c (strict_volatile_bitfield_p): Add bitregion_start
> and bitregion_end parameters.  Test for compliance with C++
> memory model.
> (store_bit_field): Adjust call to strict_volatile_bitfield_p.
> Add fallback logic for cases where -fstrict-volatile-bitfields
> is supposed to apply, but cannot.
> (extract_bit_field): Likewise. Use narrow_bit_field_mem and
> extract_fixed_bit_field_1 to do the extraction.
> (extract_fixed_bit_field): Revert to previous mode selection
algorithm.
> Call extract_fixed_bit_field_1 to do the real work.
> (extract_fixed_bit_field_1): New function.
> 
> testsuite:
> * gcc.dg/pr23623.c: Update to test interaction with C++
> memory model.
> 
> 2013-12-11  Bernd Edlinger  
> 
> PR middle-end/59134
> * expmed.c (store_bit_field): Use narrow_bit_field_mem and
> store_fixed_bit_field_1 for -fstrict-volatile-bitfields.
> (store_fixed_bit_field): Split up.  Call store_fixed_bit_field_1
> to do the real work.
> (store_fixed_bit_field_1): New function.
> (store_split_bit_field): Limit the unit size to the memory mode
size,
> to pr