aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZdenek Dvorak <dvorakz@suse.cz>2006-03-29 03:34:51 +0200
committerZdenek Dvorak <rakdver@gcc.gnu.org>2006-03-29 01:34:51 +0000
commitdd79d394de1e40e40a64f6661b50043058c5a45e (patch)
tree7ce8167061f079354d2770fb94f3a0b3b1a80db0
parent93dec1d186c0eceafc0343cf2947013d7296eb4d (diff)
downloadgcc-dd79d394de1e40e40a64f6661b50043058c5a45e.zip
gcc-dd79d394de1e40e40a64f6661b50043058c5a45e.tar.gz
gcc-dd79d394de1e40e40a64f6661b50043058c5a45e.tar.bz2
re PR middle-end/26643 (Linux matroxfb_probe miscompiled)
PR tree-optimization/26643 * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Do not handle bit_field_refs. From-SVN: r112483
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/tree-ssa-loop-ivopts.c5
2 files changed, 9 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 2db7f66..c664631 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2006-03-28 Zdenek Dvorak <dvorakz@suse.cz>
+
+ PR tree-optimization/26643
+ * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Do not handle
+ bit_field_refs.
+
2006-03-28 Kaz Kojima <kkojima@gcc.gnu.org>
* config/sh/sh.md (udivsi3_i4_int): Clobber MACH_REG and MACL_REG.
diff --git a/gcc/tree-ssa-loop-ivopts.c b/gcc/tree-ssa-loop-ivopts.c
index 9e31041..517b812 100644
--- a/gcc/tree-ssa-loop-ivopts.c
+++ b/gcc/tree-ssa-loop-ivopts.c
@@ -1482,8 +1482,9 @@ find_interesting_uses_address (struct ivopts_data *data, tree stmt, tree *op_p)
/* Ignore bitfields for now. Not really something terribly complicated
to handle. TODO. */
- if (TREE_CODE (base) == COMPONENT_REF
- && DECL_NONADDRESSABLE_P (TREE_OPERAND (base, 1)))
+ if (TREE_CODE (base) == BIT_FIELD_REF
+ || (TREE_CODE (base) == COMPONENT_REF
+ && DECL_NONADDRESSABLE_P (TREE_OPERAND (base, 1))))
goto fail;
if (STRICT_ALIGNMENT