summaryrefslogtreecommitdiffstats
path: root/flang/test/Semantics/associated.f90
diff options
context:
space:
mode:
Diffstat (limited to 'flang/test/Semantics/associated.f90')
-rw-r--r--flang/test/Semantics/associated.f9011
1 files changed, 7 insertions, 4 deletions
diff --git a/flang/test/Semantics/associated.f90 b/flang/test/Semantics/associated.f90
index 3d472bdc0666..34583c477e16 100644
--- a/flang/test/Semantics/associated.f90
+++ b/flang/test/Semantics/associated.f90
@@ -67,6 +67,7 @@ subroutine assoc()
procedure(subrInt) :: subProc
procedure(subrInt), pointer :: subProcPointer
procedure(), pointer :: implicitProcPointer
+ procedure(subrCannotBeCalledfromImplicit), pointer :: cannotBeCalledfromImplicitPointer
logical :: lVar
type(t1) :: t1x
type(t1), target :: t1xtarget
@@ -158,10 +159,8 @@ subroutine assoc()
realProcPointer1 => intProc
!ERROR: Procedure pointer 'realprocpointer1' associated with incompatible procedure designator 'intproc'
lvar = associated(realProcPointer1, intProc)
- !ERROR: Procedure pointer 'subprocpointer' with explicit interface may not be associated with procedure designator 'externalproc' with implicit interface
- subProcPointer => externalProc
- !ERROR: Procedure pointer 'subprocpointer' with explicit interface may not be associated with procedure designator 'externalproc' with implicit interface
- lvar = associated(subProcPointer, externalProc)
+ subProcPointer => externalProc ! OK to associate a procedure pointer with an explicit interface to a procedure with an implicit interface
+ lvar = associated(subProcPointer, externalProc) ! OK to associate a procedure pointer with an explicit interface to a procedure with an implicit interface
!ERROR: Subroutine pointer 'subprocpointer' may not be associated with function designator 'intproc'
subProcPointer => intProc
!ERROR: Subroutine pointer 'subprocpointer' may not be associated with function designator 'intproc'
@@ -174,5 +173,9 @@ subroutine assoc()
lvar = associated(implicitProcPointer, subr) ! OK
!ERROR: Procedure pointer 'implicitprocpointer' with implicit interface may not be associated with procedure designator 'subrcannotbecalledfromimplicit' with explicit interface that cannot be called via an implicit interface
lvar = associated(implicitProcPointer, subrCannotBeCalledFromImplicit)
+ !ERROR: Procedure pointer 'cannotbecalledfromimplicitpointer' with explicit interface that cannot be called via an implicit interface cannot be associated with procedure designator with an implicit interface
+ cannotBeCalledfromImplicitPointer => externalProc
+ !ERROR: Procedure pointer 'cannotbecalledfromimplicitpointer' with explicit interface that cannot be called via an implicit interface cannot be associated with procedure designator with an implicit interface
+ lvar = associated(cannotBeCalledfromImplicitPointer, externalProc)
end subroutine test
end subroutine assoc