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

           Summary: missing warning: Actual argument contains too few
                    elements
           Product: gcc
           Version: 4.6.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
        AssignedTo: unassig...@gcc.gnu.org
        ReportedBy: ja...@gcc.gnu.org


Test case:


 implicit none
 type t
    integer :: j(3)
 end type t

 type(t) :: tt
 integer :: i(3) = (/ 1,2,3 /)

 tt%j = i

 call sub1 (i)     ! Warning: Actual argument contains too few elements
 call sub1 (tt%j)  ! <- XXX (no warning!)
 call sub2 (i)     ! Error: Rank mismatch in argument
 call sub2 (tt%j)  ! Error: Rank mismatch in argument

contains

  subroutine sub1(i)
    integer, dimension(1:3,1:3) :: i
    print *,"sub1:",i
  end subroutine

  subroutine sub2(i)
    integer, dimension(:,:) :: i
    print *,"sub2:",i
  end subroutine

end



For the line marked "XXX" one should get the same warning as for the line
above. Errors are only mandatory for assumed-size dummies (thrown correctly for
both cases), cf. F08:12.5.2.4.

Reply via email to