URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [gfortran.dg/] [protected_2.f90] - Rev 694
Compare with Previous | Blame | View Log
! { dg-do run }! { dg-options "-std=f2003 -fall-intrinsics" }! PR fortran/23994!! Test PROTECTED attribute. Within the module everything is allowed.! Outside (use-associated): For pointers, their association status! may not be changed. For nonpointers, their value may not be changed.!! Test of a valid codemodule protmodimplicit noneinteger, protected :: ainteger, protected, target :: atinteger, protected, pointer :: apcontainssubroutine setValue()a = 43ap => null()nullify(ap)ap => atap = 3allocate(ap)ap = 73call increment(a,ap,at)if(a /= 44 .or. ap /= 74 .or. at /= 4) call abort()end subroutine setValuesubroutine increment(a1,a2,a3)integer, intent(inout) :: a1, a2, a3a1 = a1 + 1a2 = a2 + 1a3 = a3 + 1end subroutine incrementend module protmodprogram mainuse protmodimplicit nonecall setValue()if(a /= 44 .or. ap /= 74 .or. at /= 4) call abort()call plus5(ap)if(a /= 44 .or. ap /= 79 .or. at /= 4) call abort()call checkVal(a,ap,at)containssubroutine plus5(j)integer, intent(inout) :: jj = j + 5end subroutine plus5subroutine checkVal(x,y,z)integer, intent(in) :: x, y, zif(a /= 44 .or. ap /= 79 .or. at /= 4) call abort()end subroutineend program main! { dg-final { cleanup-modules "protmod" } }
