With recent trunk, gfortran incorrectly generates an error for the following standard code: MODULE MOD1 IMPLICIT NONE INTEGER, PARAMETER :: dp=KIND(0.0D0) CONTAINS SUBROUTINE pw_compose_stripe(weights,in_val,in_val_first,in_val_last,& out_val,n_el)
REAL(kind=dp), DIMENSION(0:2), & INTENT(in) :: weights INTEGER :: n_el REAL(kind=dp), DIMENSION(1:n_el), & INTENT(in) :: in_val REAL(kind=dp), DIMENSION(1:n_el), & INTENT(inout) :: out_val REAL(kind=dp), INTENT(in) :: in_val_last, in_val_first out_val=in_val END SUBROUTINE pw_compose_stripe SUBROUTINE pw_nn_compose_r_work(weights,in_val,out_val,bo) REAL(kind=dp), DIMENSION(0:2, 0:2, 0:2) :: weights INTEGER, DIMENSION(2, 3) :: bo REAL(kind=dp), DIMENSION(bo(1, 1):bo(2, & 1), bo(1, 2):bo(2, 2), bo(1, 3):bo(2, & 3)), INTENT(inout) :: out_val REAL(kind=dp), DIMENSION(bo(1, 1):bo(2, & 1), bo(1, 2):bo(2, 2), bo(1, 3):bo(2, & 3)), INTENT(in) :: in_val INTEGER :: n_el,i,j REAL(kind=dp) :: in_val_f, in_val_l INTEGER, DIMENSION(3) :: s s(1)=bo(2,1)-bo(1,1)+1 i=1 ; j=1 CALL pw_compose_stripe(weights=weights(:,i,j),& in_val=in_val(:,i,j),& in_val_first=in_val_f,in_val_last=in_val_l,& out_val=out_val(:,bo(1,2)+i,bo(1,3)+j),n_el=s(1)) END SUBROUTINE pw_nn_compose_r_work END MODULE MOD1 USE MOD1 REAL(kind=dp), DIMENSION(0:2, 0:2, 0:2) :: weights INTEGER, PARAMETER, DIMENSION(2,3) :: bo= & RESHAPE((/-1,1,-1,1,-1,1/),(/2,3/)) REAL(kind=dp), DIMENSION(bo(1, 1):bo(2, & 1), bo(1, 2):bo(2, 2), bo(1, 3):bo(2, & 3)) :: out_val,in_val in_val=1.0 out_val=0.0 CALL pw_nn_compose_r_work(weights,in_val,out_val,bo) ! write(6,'(10F5.1)') in_val ! write(6,'(10F5.1)') out_val END -- Summary: incorrect error message for valid code Product: gcc Version: 4.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: jv244 at cam dot ac dot uk http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30872