summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gfortran.dg/operator_7.f90
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/gfortran.dg/operator_7.f90')
-rw-r--r--gcc/testsuite/gfortran.dg/operator_7.f9027
1 files changed, 27 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/operator_7.f90 b/gcc/testsuite/gfortran.dg/operator_7.f90
new file mode 100644
index 000000000..66d8dd187
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/operator_7.f90
@@ -0,0 +1,27 @@
+! { dg-do compile }
+! PR fortran/45786 - operators were not correctly marked as public
+! if the alternative form was used.
+! Test case contributed by Neil Carlson.
+module foo_type
+ private
+ public :: foo, operator(==)
+ type :: foo
+ integer :: bar
+ end type
+ interface operator(.eq.)
+ module procedure eq_foo
+ end interface
+contains
+ logical function eq_foo (a, b)
+ type(foo), intent(in) :: a, b
+ eq_foo = (a%bar == b%bar)
+ end function
+end module
+
+ subroutine use_it (a, b)
+ use foo_type
+ type(foo) :: a, b
+ print *, a == b
+end subroutine
+
+! { dg-final { cleanup-modules "foo_type" } }