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

Reply via email to