aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Guenther <rguenther@suse.de>2010-07-09 10:05:27 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2010-07-09 10:05:27 +0000
commitca1316d24a741f22841116540ed1c4ed41733246 (patch)
tree505c4c21f4354e1851738eb222850c3a045f8c41
parent2dd0f799c452e2f44ad8c54a8624a4d4eb1b9eac (diff)
downloadgcc-ca1316d24a741f22841116540ed1c4ed41733246.zip
gcc-ca1316d24a741f22841116540ed1c4ed41733246.tar.gz
gcc-ca1316d24a741f22841116540ed1c4ed41733246.tar.bz2
re PR fortran/44882 (Bogus types in references with mismatched commons)
2010-07-09 Richard Guenther <rguenther@suse.de> PR tree-optimization/44882 * tree-vect-stmts.c (vectorizable_store): Do not assert alias sets do conflict. (vectorizable_load): Likewise. * gfortran.dg/pr44882.f90: New testcase. From-SVN: r161990
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.dg/pr44882.f9014
-rw-r--r--gcc/tree-vect-stmts.c9
4 files changed, 26 insertions, 9 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index a5d4ceb..4666f4c 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2010-07-09 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/44882
+ * tree-vect-stmts.c (vectorizable_store): Do not assert alias
+ sets do conflict.
+ (vectorizable_load): Likewise.
+
2010-07-09 Bernd Schmidt <bernds@codesourcery.com>
PR target/40657
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 71906e6..6a42b4e 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2010-07-09 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/44882
+ * gfortran.dg/pr44882.f90: New testcase.
+
2010-07-09 Bernd Schmidt <bernds@codesourcery.com>
PR target/40657
diff --git a/gcc/testsuite/gfortran.dg/pr44882.f90 b/gcc/testsuite/gfortran.dg/pr44882.f90
new file mode 100644
index 0000000..ac22459
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/pr44882.f90
@@ -0,0 +1,14 @@
+! { dg-do compile }
+! { dg-options "-O3 -ffast-math -funroll-loops -w" }
+
+ SUBROUTINE TRUDGE(KDIR)
+! There is a type mismatch here for TRUPAR which caused an ICE
+ COMMON /TRUPAR/ DR(10),V(10,10)
+ DO 110 I=1,NDIR
+ 110 DR(I)=V(I,JDIR)
+ END
+ SUBROUTINE TRUSRC(LEAVE)
+ IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+ COMMON /TRUPAR/ DX(10),V(10,10)
+ END
+
diff --git a/gcc/tree-vect-stmts.c b/gcc/tree-vect-stmts.c
index bf9ae73..e0ae559 100644
--- a/gcc/tree-vect-stmts.c
+++ b/gcc/tree-vect-stmts.c
@@ -3372,11 +3372,6 @@ vectorizable_store (gimple stmt, gimple_stmt_iterator *gsi, gimple *vec_stmt,
data_ref = build2 (MISALIGNED_INDIRECT_REF, vectype, dataref_ptr, tmis);
}
- /* If accesses through a pointer to vectype do not alias the original
- memory reference we have a problem. This should never happen. */
- gcc_assert (alias_sets_conflict_p (get_alias_set (data_ref),
- get_alias_set (gimple_assign_lhs (stmt))));
-
/* Arguments are ready. Create the new vector stmt. */
new_stmt = gimple_build_assign (data_ref, vec_oprnd);
vect_finish_stmt_generation (stmt, new_stmt, gsi);
@@ -3822,10 +3817,6 @@ vectorizable_load (gimple stmt, gimple_stmt_iterator *gsi, gimple *vec_stmt,
default:
gcc_unreachable ();
}
- /* If accesses through a pointer to vectype do not alias the original
- memory reference we have a problem. This should never happen. */
- gcc_assert (alias_sets_conflict_p (get_alias_set (data_ref),
- get_alias_set (gimple_assign_rhs1 (stmt))));
vec_dest = vect_create_destination_var (scalar_dest, vectype);
new_stmt = gimple_build_assign (vec_dest, data_ref);
new_temp = make_ssa_name (vec_dest, new_stmt);