------- Comment #2 from jaydub66 at gmail dot com  2008-04-09 18:23 -------
Here is a modified version of the original test case, which is also accepted by
gfortran, while it is rejected by ifort:


module m

contains

    subroutine one(a)
      integer a(1:2)
    end subroutine one

    subroutine two(a)
      integer a(2:3)
    end subroutine two

end module

program test
  use m
  implicit none

  ! PROCEDURE dummy
  !call foo(two)

  ! Interface dummy
  call bar(two)

contains

!   subroutine foo(f)
!     procedure(one) :: f
!   end subroutine foo

  subroutine bar(f)
    interface
      subroutine f(a)
        integer a(1:2)
      end subroutine f
    end interface
  end subroutine bar

end program test


In this test case both arrays are explicit-sized, and even have the same size,
but their upper and lower bounds are shifted. gfortran currently does not even
check if both arrays have the same size, only their ranks are compared.
ifort gives the following error message:

fortcom: Error: test35831.f90, line 23: The characteristics of dummy argument 1
of the associated actual procedure differ from the characteristics of dummy
argument 1 of the dummy procedure. (12.2)   [TWO]
  call bar(two)
-----------^

I would change this bug's status from UNCONFIRMED to NEW, but apparently I
don't have the "canconfirm" permission.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35831

Reply via email to