26 lines
720 B
Fortran
26 lines
720 B
Fortran
! { dg-final { scan-assembler-not "should_be_noreturn" } }
|
|
! PR 17758
|
|
! This checks that non-returning subroutines and statements
|
|
! really don't return by calling non-existing subroutines
|
|
! afterwards. These calls are supposed to be optimized away, so
|
|
! they won't show up in the generated assembly.
|
|
program main
|
|
character(len=5) :: c
|
|
c = '12345'
|
|
read(unit=c,fmt='(A)') i
|
|
select case(i)
|
|
case(1)
|
|
call abort
|
|
call abort_should_be_noreturn
|
|
case(2)
|
|
stop 65
|
|
call stop_numeric_should_be_noreturn
|
|
case(3)
|
|
stop "foobar"
|
|
call stop_string_should_be_noreturn
|
|
case(4)
|
|
call exit
|
|
call exit_should_be_noreturn
|
|
end select
|
|
end program main
|