URL
https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk
Go to most recent revision |
Only display areas with differences |
Details |
Blame |
View Log
Rev 149 |
Rev 154 |
! { dg-do run }
|
! { dg-do run }
|
! { dg-options "-ff2c" }
|
! { dg-options "-ff2c" }
|
! Verifies that array results work with -ff2c
|
! Verifies that array results work with -ff2c
|
! try all permutations of result clause in function yes/no
|
! try all permutations of result clause in function yes/no
|
! and result clause in interface yes/no
|
! and result clause in interface yes/no
|
! this is not possible in Fortran 77, but this exercises a previously
|
! this is not possible in Fortran 77, but this exercises a previously
|
! buggy codepath
|
! buggy codepath
|
function c() result (r)
|
function c() result (r)
|
complex :: r(5)
|
complex :: r(5)
|
r = 0.
|
r = 0.
|
end function c
|
end function c
|
|
|
function d()
|
function d()
|
complex :: d(5)
|
complex :: d(5)
|
d = 1.
|
d = 1.
|
end function d
|
end function d
|
|
|
subroutine test_without_result
|
subroutine test_without_result
|
interface
|
interface
|
function c ()
|
function c ()
|
complex :: c(5)
|
complex :: c(5)
|
end function c
|
end function c
|
end interface
|
end interface
|
interface
|
interface
|
function d ()
|
function d ()
|
complex :: d(5)
|
complex :: d(5)
|
end function d
|
end function d
|
end interface
|
end interface
|
complex z(5)
|
complex z(5)
|
z = c()
|
z = c()
|
if (any(z /= 0.)) call abort ()
|
if (any(z /= 0.)) call abort ()
|
z = d()
|
z = d()
|
if (any(z /= 1.)) call abort ()
|
if (any(z /= 1.)) call abort ()
|
end subroutine test_without_result
|
end subroutine test_without_result
|
|
|
subroutine test_with_result
|
subroutine test_with_result
|
interface
|
interface
|
function c () result(r)
|
function c () result(r)
|
complex :: r(5)
|
complex :: r(5)
|
end function c
|
end function c
|
end interface
|
end interface
|
interface
|
interface
|
function d () result(r)
|
function d () result(r)
|
complex :: r(5)
|
complex :: r(5)
|
end function d
|
end function d
|
end interface
|
end interface
|
complex z(5)
|
complex z(5)
|
z = c()
|
z = c()
|
if (any(z /= 0.)) call abort ()
|
if (any(z /= 0.)) call abort ()
|
z = d()
|
z = d()
|
if (any(z /= 1.)) call abort ()
|
if (any(z /= 1.)) call abort ()
|
end subroutine test_with_result
|
end subroutine test_with_result
|
|
|
call test_without_result
|
call test_without_result
|
call test_with_result
|
call test_with_result
|
end
|
end
|
|
|
|
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.