aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-sra.c
diff options
context:
space:
mode:
authorMartin Jambor <mjambor@suse.cz>2011-01-03 16:43:23 +0100
committerMartin Jambor <jamborm@gcc.gnu.org>2011-01-03 16:43:23 +0100
commit1a2e38f3dde8b51484397c9e8a278fa4ddd29442 (patch)
tree8e3eb76fb7f4ff159c99ac6fdc0d3f7aecec255b /gcc/tree-sra.c
parent56b721c5912aa1594dafc92cee1d84c626c3245d (diff)
downloadgcc-1a2e38f3dde8b51484397c9e8a278fa4ddd29442.zip
gcc-1a2e38f3dde8b51484397c9e8a278fa4ddd29442.tar.gz
gcc-1a2e38f3dde8b51484397c9e8a278fa4ddd29442.tar.bz2
re PR tree-optimization/46801 (FAIL: gnat.dg/pack9.adb scan-tree-dump-not optimized "gnat_rcheck")
2011-01-03 Martin Jambor <mjambor@suse.cz> PR tree-optimization/46801 * tree-sra.c (type_internals_preclude_sra_p): Check whether aggregate fields start at byte boundary instead of the bit-field flag. * testsuite/gnat.dg/pack9.adb: Remove xfail. From-SVN: r168431
Diffstat (limited to 'gcc/tree-sra.c')
-rw-r--r--gcc/tree-sra.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/tree-sra.c b/gcc/tree-sra.c
index 9d22ad7..14fef47 100644
--- a/gcc/tree-sra.c
+++ b/gcc/tree-sra.c
@@ -653,7 +653,8 @@ type_internals_preclude_sra_p (tree type)
|| !DECL_FIELD_OFFSET (fld) || !DECL_SIZE (fld)
|| !host_integerp (DECL_FIELD_OFFSET (fld), 1)
|| !host_integerp (DECL_SIZE (fld), 1)
- || (DECL_BIT_FIELD (fld) && AGGREGATE_TYPE_P (ft)))
+ || (AGGREGATE_TYPE_P (ft)
+ && int_bit_position (fld) % BITS_PER_UNIT != 0))
return true;
if (AGGREGATE_TYPE_P (ft)