! { dg-do compile }
! Test the fix for PR25097, in which subobjects of the optional dummy argument
! could appear as argument A of the PRESENT intrinsic.
! 
! Contributed by Joost VandeVondele <jv244@cam.ac.uk>
!
 MODULE M1
  TYPE T1
   INTEGER :: I
  END TYPE T1
 CONTAINS
  SUBROUTINE S1(D1)
   TYPE(T1), OPTIONAL :: D1(4)
   write(6,*) PRESENT(D1%I)  ! { dg-error "must not be a subobject" }
   write(6,*) PRESENT(D1(1)) ! { dg-error "must not be a subobject" }
   write(6,*) PRESENT(D1)
  END SUBROUTINE S1
 END MODULE
 END
! { dg-final { cleanup-modules "M1" } }
