URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Only display areas with differences |
Details |
Blame |
View Log
Rev 302 |
Rev 384 |
! { dg-final { scan-assembler-not "should_be_noreturn" } }
|
! { dg-final { scan-assembler-not "should_be_noreturn" } }
|
! PR 17758
|
! PR 17758
|
! This checks that non-returning subroutines and statements
|
! This checks that non-returning subroutines and statements
|
! really don't return by calling non-existing subroutines
|
! really don't return by calling non-existing subroutines
|
! afterwards. These calls are supposed to be optimized away, so
|
! afterwards. These calls are supposed to be optimized away, so
|
! they won't show up in the generated assembly.
|
! they won't show up in the generated assembly.
|
program main
|
program main
|
character(len=5) :: c
|
character(len=5) :: c
|
c = '12345'
|
c = '12345'
|
read(unit=c,fmt='(A)') i
|
read(unit=c,fmt='(A)') i
|
select case(i)
|
select case(i)
|
case(1)
|
case(1)
|
call abort
|
call abort
|
call abort_should_be_noreturn
|
call abort_should_be_noreturn
|
case(2)
|
case(2)
|
stop 65
|
stop 65
|
call stop_numeric_should_be_noreturn
|
call stop_numeric_should_be_noreturn
|
case(3)
|
case(3)
|
stop "foobar"
|
stop "foobar"
|
call stop_string_should_be_noreturn
|
call stop_string_should_be_noreturn
|
case(4)
|
case(4)
|
call exit
|
call exit
|
call exit_should_be_noreturn
|
call exit_should_be_noreturn
|
end select
|
end select
|
end program main
|
end program main
|
|
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.