aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/tree-ssa-loop-ivopts.c3
2 files changed, 8 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 99968b3..5e64d3e 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2011-07-31 Tom de Vries <tom@codesourcery.com>
+
+ PR middle-end/43513
+ * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Use max of
+ get_object_alignment and TYPE_ALIGN.
+
2011-07-30 Tom de Vries <tom@codesourcery.com>
PR middle-end/43513
diff --git a/gcc/tree-ssa-loop-ivopts.c b/gcc/tree-ssa-loop-ivopts.c
index 4d4b67a..cc9b2dd 100644
--- a/gcc/tree-ssa-loop-ivopts.c
+++ b/gcc/tree-ssa-loop-ivopts.c
@@ -1635,7 +1635,8 @@ may_be_unaligned_p (tree ref, tree step)
base = get_inner_reference (ref, &bitsize, &bitpos, &toffset, &mode,
&unsignedp, &volatilep, true);
base_type = TREE_TYPE (base);
- base_align = TYPE_ALIGN (base_type);
+ base_align = get_object_alignment (base, BIGGEST_ALIGNMENT);
+ base_align = MAX (base_align, TYPE_ALIGN (base_type));
if (mode != BLKmode)
{