re PR tree-optimization/22035 (complex float comparison broken)
PR tree-opt/22035 * gfortran.dg/f2c_6.f90: New test. From-SVN: r101152
This commit is contained in:
parent
0563fe8b47
commit
189ed82c09
@ -1,3 +1,8 @@
|
||||
2005-06-18 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
|
||||
|
||||
PR tree-opt/22035
|
||||
* gfortran.dg/f2c_6.f90: New test.
|
||||
|
||||
2005-06-17 Geoffrey Keating <geoffk@apple.com>
|
||||
|
||||
PR c++/17413
|
||||
|
84
gcc/testsuite/gfortran.dg/f2c_6.f90
Normal file
84
gcc/testsuite/gfortran.dg/f2c_6.f90
Normal file
@ -0,0 +1,84 @@
|
||||
! { dg-do run }
|
||||
! { dg-options "-ff2c" }
|
||||
! Verifies that complex pointer results work with -ff2c
|
||||
! try all permutations of result clause in function yes/no
|
||||
! and result clause in interface yes/no
|
||||
! this is not possible in Fortran 77, but this exercises a previously
|
||||
! buggy codepath
|
||||
function c() result (r)
|
||||
common // z
|
||||
complex, pointer :: r
|
||||
complex, target :: z
|
||||
|
||||
r=>z
|
||||
end function c
|
||||
|
||||
function d()
|
||||
common // z
|
||||
complex, pointer :: d
|
||||
complex, target :: z
|
||||
|
||||
d=>z
|
||||
end function d
|
||||
|
||||
function e()
|
||||
common // z
|
||||
complex, pointer :: e
|
||||
complex, target :: z
|
||||
|
||||
e=>z
|
||||
end function e
|
||||
|
||||
function f() result(r)
|
||||
common // z
|
||||
complex, pointer :: r
|
||||
complex, target :: z
|
||||
|
||||
r=>z
|
||||
end function f
|
||||
|
||||
interface
|
||||
function c
|
||||
complex, pointer :: c
|
||||
end function c
|
||||
end interface
|
||||
interface
|
||||
function d
|
||||
complex, pointer :: d
|
||||
end function d
|
||||
end interface
|
||||
interface
|
||||
function e result(r)
|
||||
complex, pointer :: r
|
||||
end function e
|
||||
end interface
|
||||
interface
|
||||
function f result(r)
|
||||
complex, pointer :: r
|
||||
end function f
|
||||
end interface
|
||||
|
||||
common // z
|
||||
complex, target :: z
|
||||
complex, pointer :: p
|
||||
|
||||
z = (1.,0.)
|
||||
p => c()
|
||||
z = (2.,0.)
|
||||
if (p /= z) call abort ()
|
||||
|
||||
NULLIFY(p)
|
||||
p => d()
|
||||
z = (3.,0.)
|
||||
if (p /= z) call abort ()
|
||||
|
||||
NULLIFY(p)
|
||||
p => e()
|
||||
z = (4.,0.)
|
||||
if (p /= z) call abort ()
|
||||
|
||||
NULLIFY(p)
|
||||
p => f()
|
||||
z = (5.,0.)
|
||||
if (p /= z) call abort ()
|
||||
end
|
Loading…
Reference in New Issue
Block a user