re PR c++/90484 (ICE in equal_mem_array_ref_p at gcc/tree-ssa-scopedtables.c:550...
authorJakub Jelinek <jakub@redhat.com>
Thu, 16 May 2019 21:45:34 +0000 (23:45 +0200)
committerJakub Jelinek <jakub@gcc.gnu.org>
Thu, 16 May 2019 21:45:34 +0000 (23:45 +0200)
PR c++/90484
* tree-ssa-scopedtables.c (equal_mem_array_ref_p): Don't assert that
sz0 is equal to sz1, instead return false in that case.

From-SVN: r271299

gcc/ChangeLog
gcc/tree-ssa-scopedtables.c

index 232a7d6546dbd2f211df00d282924433169e10f1..d8bed3a817d332952ef0e5d6950e9b96cc9e05fb 100644 (file)
@@ -1,5 +1,9 @@
 2019-05-16  Jakub Jelinek  <jakub@redhat.com>
 
+       PR c++/90484
+       * tree-ssa-scopedtables.c (equal_mem_array_ref_p): Don't assert that
+       sz0 is equal to sz1, instead return false in that case.
+
        * omp-low.c (lower_rec_input_clauses): If OMP_CLAUSE_IF
        has non-constant expression, force sctx.lane and use two
        argument IFN_GOMP_SIMD_LANE instead of single argument.
index 0614afc3be8dbc520d76014b8fbed79542f11d20..e08e24dfcc1bbf9efe72fc529c5e76457baa9d08 100644 (file)
@@ -537,13 +537,10 @@ equal_mem_array_ref_p (tree t0, tree t1)
       || maybe_ne (sz1, max1))
     return false;
 
-  if (rev0 != rev1)
+  if (rev0 != rev1 || maybe_ne (sz0, sz1) || maybe_ne (off0, off1))
     return false;
 
-  /* Types were compatible, so this is a sanity check.  */
-  gcc_assert (known_eq (sz0, sz1));
-
-  return known_eq (off0, off1) && operand_equal_p (base0, base1, 0);
+  return operand_equal_p (base0, base1, 0);
 }
 
 /* Compare two hashable_expr structures for equivalence.  They are