OpenCores
URL https://opencores.org/ocsvn/openrisc_2011-10-31/openrisc_2011-10-31/trunk

Subversion Repositories openrisc_2011-10-31

[/] [openrisc/] [tags/] [gnu-src/] [gcc-4.5.1/] [gcc-4.5.1-or32-1.0rc2/] [gcc/] [testsuite/] [gfortran.dg/] [module_procedure_1.f90] - Diff between revs 302 and 384

Only display areas with differences | Details | Blame | View Log

Rev 302 Rev 384
! { dg-do run }
! { dg-do run }
! Modified program from http://groups.google.com/group/\
! Modified program from http://groups.google.com/group/\
! comp.lang.fortran/browse_frm/thread/423e4392dc965ab7#
! comp.lang.fortran/browse_frm/thread/423e4392dc965ab7#
!
!
module myoperator
module myoperator
   contains
   contains
      function dadd(arg1,arg2)
      function dadd(arg1,arg2)
         integer ::dadd(2)
         integer ::dadd(2)
         integer, intent(in) :: arg1(2), arg2(2)
         integer, intent(in) :: arg1(2), arg2(2)
         dadd(1)=arg1(1)+arg2(1)
         dadd(1)=arg1(1)+arg2(1)
         dadd(2)=arg1(2)+arg2(2)
         dadd(2)=arg1(2)+arg2(2)
      end function dadd
      end function dadd
end module myoperator
end module myoperator
program test_interface
program test_interface
   use myoperator
   use myoperator
   implicit none
   implicit none
   interface operator (.myadd.)
   interface operator (.myadd.)
      module procedure dadd
      module procedure dadd
   end interface
   end interface
   integer input1(2), input2(2), mysum(2)
   integer input1(2), input2(2), mysum(2)
   input1 = (/0,1/)
   input1 = (/0,1/)
   input2 = (/3,3/)
   input2 = (/3,3/)
   mysum = input1 .myadd. input2
   mysum = input1 .myadd. input2
   if (mysum(1) /= 3 .and. mysum(2) /= 4) call abort
   if (mysum(1) /= 3 .and. mysum(2) /= 4) call abort
   call test_sub(input1, input2)
   call test_sub(input1, input2)
end program test_interface
end program test_interface
subroutine test_sub(input1, input2)
subroutine test_sub(input1, input2)
   use myoperator
   use myoperator
   implicit none
   implicit none
   interface operator (.myadd.)
   interface operator (.myadd.)
      module procedure dadd
      module procedure dadd
   end interface
   end interface
   integer, intent(in) :: input1(2), input2(2)
   integer, intent(in) :: input1(2), input2(2)
   integer mysum(2)
   integer mysum(2)
   mysum = input1 .myadd. input2
   mysum = input1 .myadd. input2
   if (mysum(1) /= 3 .and. mysum(2) /= 4) call abort
   if (mysum(1) /= 3 .and. mysum(2) /= 4) call abort
end subroutine test_sub
end subroutine test_sub
! { dg-final { cleanup-modules "myoperator" } }
! { dg-final { cleanup-modules "myoperator" } }
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.