------- Comment #3 from burnus at gcc dot gnu dot org 2009-10-29 23:09 ------- Hmm, I get regtest failures for elemental procedures:
gfortran.dg/bounds_check_9.f90 gfortran.dg/bounds_check_fail_2.f90 - D.1415 = ivec != 0B ? &(*ivec.0)[(S.10 + 1) * D.1413 + D.1408] : 0B; - set_optional (&ivec_[S.10], &D.1414, D.1415); + set_optional (&ivec_[S.10], &D.1414, &(*ivec.0)[(S.10 + 1) * D.1413+D.1408]); Dummy: elemental subroutine set_optional(i,idef,iopt) integer, intent(in), optional :: iopt Actual: integer, intent(in), optional :: ivec(:) call set_optional(ivec_,(/1,2/)) call set_optional(ivec_,(/1,2/),ivec) Thus, the problem is that one passes an array to a scalar in form of an elemental procedure; seemingly, one needs to take care of this special case. Anything else? -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41850