+2012-12-09 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ PR fortran/55593
+ * gfortran.dg/do_check_8.f90: New test.
+
2012-12-05 Tobias Burnus <burnus@net-b.de>
* resolve.c (generate_component_assignments): Fix memleak.
break;
case EXEC_CALL:
- f = co->symtree->n.sym->formal;
+
+ if (co->resolved_sym == NULL)
+ break;
+
+ f = co->resolved_sym->formal;
/* Withot a formal arglist, there is only unknown INTENT,
which we don't check for. */
+2012-12-09 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ PR fortran/55593
+ * gfortran.dg/do_check_8.f90: New test.
+
2012-12-08 Eric Botcazou <ebotcazou@adacore.com>
* gnat.dg/vect10.ad[sb]: New test.
--- /dev/null
+! { dg-do compile }
+! PR 55593 - bogus error with generic subroutines
+module foo
+ implicit none
+ interface sub
+ subroutine sub2(i)
+ integer, intent(in) :: i
+ end subroutine sub2
+ subroutine sub(i)
+ integer, dimension(:), intent(out) :: i
+ end subroutine sub
+ end interface sub
+
+ interface tub2
+ subroutine tub2(i)
+ integer, intent(in) :: i
+ end subroutine tub2
+ subroutine tub(i)
+ integer, dimension(:), intent(out) :: i
+ end subroutine tub
+ end interface tub2
+
+ interface func
+ integer function ifunc(i)
+ integer, intent(in) :: i
+ end function ifunc
+ integer function func(i)
+ integer, intent(in) :: i(:)
+ end function func
+ end interface func
+
+ interface igunc
+ integer function igunc(i)
+ integer, intent(in) :: i
+ end function igunc
+ integer function gunc(i)
+ integer, intent(in) :: i(:)
+ end function gunc
+ end interface igunc
+end module foo
+
+program main
+ use foo
+ implicit none
+ integer :: i
+ do i=1,10
+ call sub(i)
+ call tub2(i)
+ end do
+ do i=1,10
+ print *,func(i)
+ print *,igunc(i)
+ end do
+
+ do undeclared=1,10 ! { dg-error "has no IMPLICIT type" }
+ call sub(undeclared)
+ end do
+end program main
+! { dg-final { cleanup-modules "foo" } }