diff options
author | Richard Biener <rguenther@suse.de> | 2017-05-04 09:08:01 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2017-05-04 09:08:01 +0000 |
commit | c3e46927e4504374677f4e17838e6e51b5d7b185 (patch) | |
tree | 060bfa97ff1fe70567c51cb7685cdc78194aa1db /gcc/tree-chkp.c | |
parent | 99b68476de7635380de3480b83e852a38fe36f64 (diff) | |
download | gcc-c3e46927e4504374677f4e17838e6e51b5d7b185.zip gcc-c3e46927e4504374677f4e17838e6e51b5d7b185.tar.gz gcc-c3e46927e4504374677f4e17838e6e51b5d7b185.tar.bz2 |
tree.c (array_at_struct_end_p): Handle arrays at struct end with flexarrays more conservatively.
2017-05-04 Richard Biener <rguenther@suse.de>
* tree.c (array_at_struct_end_p): Handle arrays at struct
end with flexarrays more conservatively. Refactor and treat
arrays of arrays or aggregates more strict. Fix
VIEW_CONVERT_EXPR handling. Remove allow_compref argument.
* tree.c (array_at_struct_end_p): Adjust prototype.
* emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust.
* gimple-fold.c (get_range_strlen): Likewise.
* tree-chkp.c (chkp_may_narrow_to_field): Likewise.
From-SVN: r247581
Diffstat (limited to 'gcc/tree-chkp.c')
-rw-r--r-- | gcc/tree-chkp.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/tree-chkp.c b/gcc/tree-chkp.c index b1ff218..23f5af9 100644 --- a/gcc/tree-chkp.c +++ b/gcc/tree-chkp.c @@ -3277,7 +3277,7 @@ chkp_may_narrow_to_field (tree ref, tree field) return DECL_SIZE (field) && TREE_CODE (DECL_SIZE (field)) == INTEGER_CST && tree_to_uhwi (DECL_SIZE (field)) != 0 && !(flag_chkp_flexible_struct_trailing_arrays - && array_at_struct_end_p (ref, true)) + && array_at_struct_end_p (ref)) && (!DECL_FIELD_OFFSET (field) || TREE_CODE (DECL_FIELD_OFFSET (field)) == INTEGER_CST) && (!DECL_FIELD_BIT_OFFSET (field) |