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.