OSDN Git Service

PR tree-optimization/32194
authorrakdver <rakdver@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 3 Jun 2007 19:21:12 +0000 (19:21 +0000)
committerrakdver <rakdver@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 3 Jun 2007 19:21:12 +0000 (19:21 +0000)
* tree-predcom.c (determine_offset): Check that both references have
the same type.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@125298 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/tree-predcom.c

index 2214ddf..39dd070 100644 (file)
@@ -1,5 +1,11 @@
 2007-06-03  Zdenek Dvorak  <dvorakz@suse.cz>
 
+       PR tree-optimization/32194
+       * tree-predcom.c (determine_offset): Check that both references have
+       the same type.
+
+2007-06-03  Zdenek Dvorak  <dvorakz@suse.cz>
+
        * cfgloopmanip.c (remove_path, loopify, duplicate_loop_to_header_edge):
        Change dom_bbs to vector.  Add argument to iterate_fix_dominators call.
        * loop-unroll.c (unroll_loop_runtime_iterations): Ditto.
index b5c8292..15fcafe 100644 (file)
@@ -628,6 +628,13 @@ determine_offset (struct data_reference *a, struct data_reference *b,
                  double_int *off)
 {
   aff_tree diff, baseb, step;
+  tree typea, typeb;
+
+  /* Check that both the references access the location in the same type.  */
+  typea = TREE_TYPE (DR_REF (a));
+  typeb = TREE_TYPE (DR_REF (b));
+  if (!tree_ssa_useless_type_conversion_1 (typeb, typea))
+    return false;
 
   /* Check whether the base address and the step of both references is the
      same.  */