diff options
author | Richard Biener <rguenther@suse.de> | 2016-06-28 11:55:19 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2016-06-28 11:55:19 +0000 |
commit | 7d4cdbd485607cc1d575a42d815a5dec7708aded (patch) | |
tree | cc5f212f823778695adf1ffc90a0354537fe9967 /gcc/stor-layout.c | |
parent | e9ac1f86bf70e0ca794fed6ba3b8fe3026da063e (diff) | |
download | gcc-7d4cdbd485607cc1d575a42d815a5dec7708aded.zip gcc-7d4cdbd485607cc1d575a42d815a5dec7708aded.tar.gz gcc-7d4cdbd485607cc1d575a42d815a5dec7708aded.tar.bz2 |
tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): Properly handle DECL_BIT_FIELD_REPRESENTATIVE occuring as COMPONENT_REF operand.
2016-06-28 Richard Biener <rguenther@suse.de>
* tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
Properly handle DECL_BIT_FIELD_REPRESENTATIVE occuring as
COMPONENT_REF operand.
(nonoverlapping_component_refs_p): Likewise.
* stor-layout.c (start_bitfield_representative): Mark
DECL_BIT_FIELD_REPRESENTATIVE as DECL_NONADDRESSABLE_P.
From-SVN: r237818
Diffstat (limited to 'gcc/stor-layout.c')
-rw-r--r-- | gcc/stor-layout.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/stor-layout.c b/gcc/stor-layout.c index 40170ef..d66d769 100644 --- a/gcc/stor-layout.c +++ b/gcc/stor-layout.c @@ -1808,6 +1808,11 @@ start_bitfield_representative (tree field) DECL_SIZE_UNIT (repr) = DECL_SIZE_UNIT (field); DECL_PACKED (repr) = DECL_PACKED (field); DECL_CONTEXT (repr) = DECL_CONTEXT (field); + /* There are no indirect accesses to this field. If we introduce + some then they have to use the record alias set. This makes + sure to properly conflict with [indirect] accesses to addressable + fields of the bitfield group. */ + DECL_NONADDRESSABLE_P (repr) = 1; return repr; } |