re PR c++/71694 (store-data race with bitfields and tail-padding in C++)
authorRichard Biener <rguenther@suse.de>
Fri, 16 Dec 2016 09:40:03 +0000 (09:40 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Fri, 16 Dec 2016 09:40:03 +0000 (09:40 +0000)
commitb7fc43d7c747d190e197ca89cfce4f1d9def7c7e
treee7a4831ca7b46e08d1f5bc38c1d4f221aa7cfbbe
parentc4d5c5e6ac73cac2b89d039eff9874ff80742589
re PR c++/71694 (store-data race with bitfields and tail-padding in C++)

2016-12-16  Richard Biener  <rguenther@suse.de>

PR c++/71694
* langhooks-def.h (lhd_unit_size_without_reusable_padding): Declare.
(LANG_HOOKS_UNIT_SIZE_WITHOUT_REUSABLE_PADDING): Define.
(LANG_HOOKS_FOR_TYPES_INITIALIZER): Adjust.
* langhooks.h (struct lang_hooks_for_types): Add
unit_size_without_reusable_padding.
* langhooks.c (lhd_unit_size_without_reusable_padding): New.
* stor-layout.c (finish_bitfield_representative): Use
unit_size_without_reusable_padding langhook to decide on the
last representatives size.

cp/
* cp-objcp-common.h (cp_unit_size_without_reusable_padding): Declare.
(LANG_HOOKS_UNIT_SIZE_WITHOUT_REUSABLE_PADDING): Define.
* cp-objcp-common.c (cp_unit_size_without_reusable_padding): New.

* g++.dg/pr71694.C: New testcase.

From-SVN: r243738
gcc/ChangeLog
gcc/cp/ChangeLog
gcc/cp/cp-objcp-common.c
gcc/cp/cp-objcp-common.h
gcc/langhooks-def.h
gcc/langhooks.c
gcc/langhooks.h
gcc/stor-layout.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/pr71694.C [new file with mode: 0644]