summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gfortran.dg/associated_1.f90
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/gfortran.dg/associated_1.f90')
-rw-r--r--gcc/testsuite/gfortran.dg/associated_1.f9026
1 files changed, 26 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/associated_1.f90 b/gcc/testsuite/gfortran.dg/associated_1.f90
new file mode 100644
index 000000000..e214fe272
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/associated_1.f90
@@ -0,0 +1,26 @@
+! { dg-do run }
+! PR 25292: Check that the intrinsic associated works with functions returning
+! pointers as arguments
+program test
+ real, pointer :: a, b
+
+ nullify(a,b)
+ if(associated(a,b).or.associated(a,a)) call abort()
+ allocate(a)
+ if(associated(b,a)) call abort()
+ if (.not.associated(x(a))) call abort ()
+ if (.not.associated(a, x(a))) call abort ()
+
+ nullify(b)
+ if (associated(x(b))) call abort ()
+ allocate(b)
+ if (associated(x(b), x(a))) call abort ()
+
+contains
+
+ function x(a) RESULT(b)
+ real, pointer :: a,b
+ b => a
+ end function x
+
+end program test