diff options
Diffstat (limited to 'gcc/testsuite/gfortran.dg/use_5.f90')
-rw-r--r-- | gcc/testsuite/gfortran.dg/use_5.f90 | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/use_5.f90 b/gcc/testsuite/gfortran.dg/use_5.f90 new file mode 100644 index 000000000..0554f394a --- /dev/null +++ b/gcc/testsuite/gfortran.dg/use_5.f90 @@ -0,0 +1,49 @@ +! { dg-do run } +! Renaming of operators +module z + interface operator(.addfive.) + module procedure sub2 + end interface +contains +function sub2(x) + integer :: sub + integer,intent(in) :: x + sub2 = x + 5 +end function sub2 +end module z + +module y + interface operator(.addfive.) + module procedure sub + end interface +contains +function sub(x) + integer :: sub + integer,intent(in) :: x + sub = x + 15 +end function sub +end module y + +module x + interface operator(.addfive.) + module procedure sub + end interface +contains +function sub(x) + integer :: sub + integer,intent(in) :: x + sub = x + 25 +end function sub +end module x + +use x, only : operator(.bar.) => operator(.addfive.) +use y, operator(.my.) => operator(.addfive.) +use z + integer :: i + i = 2 + if ((.bar. i) /= 2+25) call abort () + if ((.my. i) /= 2+15) call abort () + if ((.addfive. i) /= 2+5) call abort () +end + +! { dg-final { cleanup-modules "x y z" } } |