The auto_vec replacement missed one truncation. Committed as obvious.
Richard. 2014-09-02 Richard Biener <rguent...@suse.de> PR tree-optimization/62695 * tree-ssa-structalias.c (find_func_clobbers): Add missing vector truncate. * gfortran.dg/pr62695.f90: New testcase. Index: gcc/tree-ssa-structalias.c =================================================================== --- gcc/tree-ssa-structalias.c (revision 214795) +++ gcc/tree-ssa-structalias.c (working copy) @@ -5042,6 +5042,7 @@ find_func_clobbers (struct function *fn, 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 Index: gcc/testsuite/gfortran.dg/pr62695.f90 =================================================================== --- gcc/testsuite/gfortran.dg/pr62695.f90 (revision 0) +++ gcc/testsuite/gfortran.dg/pr62695.f90 (working copy) @@ -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