From 3f734f66fb4f5ad20584f6639aadb22df1cfa842 Mon Sep 17 00:00:00 2001 From: Richard Biener Date: Tue, 2 Sep 2014 08:22:33 +0000 Subject: [PATCH] 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 PR tree-optimization/62695 * tree-ssa-structalias.c (find_func_clobbers): Add missing vector truncate. * gfortran.dg/pr62695.f90: New testcase. From-SVN: r214810 --- gcc/ChangeLog | 6 ++++++ gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/gfortran.dg/pr62695.f90 | 27 +++++++++++++++++++++++++++ gcc/tree-ssa-structalias.c | 1 + 4 files changed, 39 insertions(+) create mode 100644 gcc/testsuite/gfortran.dg/pr62695.f90 diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f8aa0f36424..10561c97f5d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2014-09-02 Richard Biener + + PR tree-optimization/62695 + * tree-ssa-structalias.c (find_func_clobbers): Add missing + vector truncate. + 2014-09-01 Oleg Endo PR target/62312 diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 7dcb6e7421f..6825ea16f6b 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2014-09-02 Richard Biener + + PR tree-optimization/62695 + * gfortran.dg/pr62695.f90: New testcase. + 2014-09-01 Oleg Endo PR target/62312 diff --git a/gcc/testsuite/gfortran.dg/pr62695.f90 b/gcc/testsuite/gfortran.dg/pr62695.f90 new file mode 100644 index 00000000000..7d80a856e10 --- /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 0ce71bd0db5..01690872b9d 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 -- 2.30.2