! { 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" }