diff options
author | Richard Biener <rguenther@suse.de> | 2014-09-02 08:22:33 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2014-09-02 08:22:33 +0000 |
commit | 3f734f66fb4f5ad20584f6639aadb22df1cfa842 (patch) | |
tree | 6ddc9148eaddb2f60eb056a808cf540f1880b09f /gcc | |
parent | c0e3b4d4645175cb0bb09a1e194a4631bfd56574 (diff) | |
download | gcc-3f734f66fb4f5ad20584f6639aadb22df1cfa842.zip gcc-3f734f66fb4f5ad20584f6639aadb22df1cfa842.tar.gz gcc-3f734f66fb4f5ad20584f6639aadb22df1cfa842.tar.bz2 |
re PR middle-end/62695 (internal compiler error: in get_constraint_for_component_ref, at tree-ssa-structalias.c:3189)
2014-09-02 Richard Biener <rguenther@suse.de>
PR tree-optimization/62695
* tree-ssa-structalias.c (find_func_clobbers): Add missing
vector truncate.
* gfortran.dg/pr62695.f90: New testcase.
From-SVN: r214810
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/pr62695.f90 | 27 | ||||
-rw-r--r-- | gcc/tree-ssa-structalias.c | 1 |
4 files changed, 39 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f8aa0f3..10561c9 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2014-09-02 Richard Biener <rguenther@suse.de> + + PR tree-optimization/62695 + * tree-ssa-structalias.c (find_func_clobbers): Add missing + vector truncate. + 2014-09-01 Oleg Endo <olegendo@gcc.gnu.org> PR target/62312 diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 7dcb6e7..6825ea1 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2014-09-02 Richard Biener <rguenther@suse.de> + + PR tree-optimization/62695 + * gfortran.dg/pr62695.f90: New testcase. + 2014-09-01 Oleg Endo <olegendo@gcc.gnu.org> PR target/62312 diff --git a/gcc/testsuite/gfortran.dg/pr62695.f90 b/gcc/testsuite/gfortran.dg/pr62695.f90 new file mode 100644 index 0000000..7d80a85 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/pr62695.f90 @@ -0,0 +1,27 @@ +! { dg-do compile } +! { dg-options "-O -fipa-pta" } + +MODULE dbcsr_dist_operations + TYPE dbcsr_mp_obj + END TYPE dbcsr_mp_obj + INTERFACE + SUBROUTINE dbcsr_mp_new(mp_env, pgrid, mp_group, mynode, numnodes, myprow,& + mypcol) + IMPORT + TYPE(dbcsr_mp_obj), INTENT(OUT) :: mp_env + INTEGER, DIMENSION(0:, 0:), INTENT(IN) :: pgrid + END SUBROUTINE dbcsr_mp_new + END INTERFACE +CONTAINS + SUBROUTINE dbcsr_mp_make_env (mp_env, mp_group, & + nprocs, pgrid_dims, error) + TYPE(dbcsr_mp_obj), INTENT(OUT) :: mp_env + OPTIONAL :: pgrid_dims + INTEGER :: error_handle, group, mynode, & + numnodes, pcol, prow + INTEGER, ALLOCATABLE, DIMENSION(:, :) :: pgrid + INTEGER, DIMENSION(2) :: coord, myploc, npdims + CALL dbcsr_mp_new (mp_env, pgrid, group, mynode, numnodes,& + myprow=myploc(1), mypcol=myploc(2)) + END SUBROUTINE dbcsr_mp_make_env +END MODULE dbcsr_dist_operations diff --git a/gcc/tree-ssa-structalias.c b/gcc/tree-ssa-structalias.c index 0ce71bd..0169087 100644 --- a/gcc/tree-ssa-structalias.c +++ b/gcc/tree-ssa-structalias.c @@ -5042,6 +5042,7 @@ find_func_clobbers (struct function *fn, gimple origt) get_constraint_for_address_of (arg, &rhsc); FOR_EACH_VEC_ELT (rhsc, j, rhsp) process_constraint (new_constraint (lhs, *rhsp)); + rhsc.truncate (0); } /* Build constraints for propagating clobbers/uses along the |