aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gnat.dg/pack9.adb2
-rw-r--r--gcc/tree-sra.c3
4 files changed, 14 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 71e64e4..0b92221 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+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.
+
2011-01-03 H.J. Lu <hongjiu.lu@intel.com>
PR driver/47137
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 86f8e3e..ae48268 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,5 +1,10 @@
2011-01-03 Martin Jambor <mjambor@suse.cz>
+ PR tree-optimization/46801
+ * gnat.dg/pack9.adb: Remove xfail.
+
+2011-01-03 Martin Jambor <mjambor@suse.cz>
+
PR tree-optimization/46984
* g++.dg/ipa/pr46984.C: New test.
diff --git a/gcc/testsuite/gnat.dg/pack9.adb b/gcc/testsuite/gnat.dg/pack9.adb
index aa0298b..7e74050 100644
--- a/gcc/testsuite/gnat.dg/pack9.adb
+++ b/gcc/testsuite/gnat.dg/pack9.adb
@@ -15,5 +15,5 @@ package body Pack9 is
end Pack9;
--- { dg-final { scan-tree-dump-not "gnat_rcheck" "optimized" { xfail *-*-* } } }
+-- { dg-final { scan-tree-dump-not "gnat_rcheck" "optimized" } }
-- { dg-final { cleanup-tree-dump "optimized" } }
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)