1! { dg-do compile } 2! { dg-options "-std=f95 -Wintrinsics-std" } 3 4! 5! See intrinsic_std_6.f90 for the dump check. 6! 7 8! PR fortran/33141 9! Check for the expected behaviour when an intrinsic function/subroutine is 10! called that is not available in the defined standard or that is a GNU 11! extension: 12! There should be a warning emitted on the call, and the reference should be 13! treated like an external call. 14! For declaring a non-standard intrinsic INTRINSIC, a hard error should be 15! generated, of course. 16 17SUBROUTINE no_implicit 18 IMPLICIT NONE 19 REAL :: asinh ! { dg-warning "Fortran 2008" } 20 21 ! abort is a GNU extension 22 CALL abort () ! { dg-warning "extension" } 23 24 ! ASINH is an intrinsic of F2008 25 ! The warning should be issued in the declaration above where it is declared 26 ! EXTERNAL. 27 WRITE (*,*) ASINH (1.) ! { dg-warning "Fortran 2008" } 28END SUBROUTINE no_implicit 29 30SUBROUTINE implicit_type 31 ! acosh has implicit type 32 33 WRITE (*,*) ACOSH (1.) ! { dg-warning "Fortran 2008" } 34 WRITE (*,*) ACOSH (1.) ! { dg-bogus "Fortran 2008" } 35END SUBROUTINE implicit_type 36 37SUBROUTINE specification_expression 38 CHARACTER(KIND=selected_char_kind("ascii")) :: x 39! { dg-error "must be an intrinsic function" "" { target "*-*-*" } 38 } 40! { dg-warning "Fortran 2003" "" { target "*-*-*" } 38 } 41END SUBROUTINE specification_expression 42 43SUBROUTINE intrinsic_decl 44 IMPLICIT NONE 45 INTRINSIC :: atanh ! { dg-error "Fortran 2008" } 46 INTRINSIC :: abort ! { dg-error "extension" } 47END SUBROUTINE intrinsic_decl 48