1! { dg-final { scan-assembler-not "should_be_noreturn" } } 2! PR 17758 3! This checks that non-returning subroutines and statements 4! really don't return by calling non-existing subroutines 5! afterwards. These calls are supposed to be optimized away, so 6! they won't show up in the generated assembly. 7program main 8 character(len=5) :: c 9 c = '12345' 10 read(unit=c,fmt='(A)') i 11 select case(i) 12 case(1) 13 call abort 14 call abort_should_be_noreturn 15 case(2) 16 stop 65 17 call stop_numeric_should_be_noreturn 18 case(3) 19 stop "foobar" 20 call stop_string_should_be_noreturn 21 case(4) 22 call exit 23 call exit_should_be_noreturn 24 end select 25end program main 26