URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [gfortran.dg/] [assignment_2.f90] - Rev 694
Compare with Previous | Blame | View Log
! { dg-do compile }
!
! PR fortran/35033
!
! The checks for assignments were too strict.
!
MODULE m1
INTERFACE ASSIGNMENT(=)
SUBROUTINE s(a,b)
REAL,INTENT(OUT) :: a(1,*)
REAL,INTENT(IN) :: b(:)
END SUBROUTINE
END Interface
contains
subroutine test1()
REAL,POINTER :: p(:,:),q(:)
CALL s(p,q)
p = q
end subroutine test1
end module m1
MODULE m2
INTERFACE ASSIGNMENT(=)
SUBROUTINE s(a,b)
REAL,INTENT(OUT),VOLATILE :: a(1,*)
REAL,INTENT(IN) :: b(:)
END SUBROUTINE
END Interface
contains
subroutine test1()
REAL,POINTER :: p(:,:),q(:)
CALL s(p,q) ! { dg-error "requires an assumed-shape or pointer-array dummy" }
!TODO: The following is rightly rejected but the error message is misleading.
! The actual reason is the mismatch between pointer array and VOLATILE
p = q ! { dg-error "Incompatible ranks" }
end subroutine test1
end module m2
MODULE m3
INTERFACE ASSIGNMENT(=)
module procedure s
END Interface
contains
SUBROUTINE s(a,b) ! { dg-error "must not redefine an INTRINSIC type" }
REAL,INTENT(OUT),VOLATILE :: a(1,*)
REAL,INTENT(IN) :: b(:,:)
END SUBROUTINE
end module m3
! { dg-final { cleanup-modules "m1 m2 m3" } }