blob: e83ed4c884d7cb1c1aa24ac94612f605c5d3bd90 [file] [log] [blame]
! { dg-do run }
! { dg-options "-std=f95 -Wno-intrinsics-std" }
! PR fortran/33141
! Check that calls to intrinsics not in the current standard are "allowed" and
! linked to external procedures with that name.
! Addionally, this checks that -Wno-intrinsics-std turns off the warning.
SUBROUTINE abort ()
IMPLICIT NONE
WRITE (*,*) "Correct"
END SUBROUTINE abort
REAL FUNCTION asinh (arg)
IMPLICIT NONE
REAL :: arg
WRITE (*,*) "Correct"
asinh = arg
END FUNCTION asinh
SUBROUTINE implicit_none
IMPLICIT NONE
REAL :: asinh ! { dg-bogus "Fortran 2008" }
REAL :: x
! Both times our version above should be called
CALL abort () ! { dg-bogus "extension" }
x = ASINH (1.) ! { dg-bogus "Fortran 2008" }
END SUBROUTINE implicit_none
SUBROUTINE implicit_type
! ASINH has implicit type here
REAL :: x
! Our version should be called
x = ASINH (1.) ! { dg-bogus "Fortran 2008" }
END SUBROUTINE implicit_type
PROGRAM main
! This should give a total of three "Correct"s
CALL implicit_none ()
CALL implicit_type ()
END PROGRAM main
! { dg-output "Correct\.*Correct\.*Correct" }