47 lines
1.1 KiB
Fortran
47 lines
1.1 KiB
Fortran
! { 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" }
|