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>
|
2005-06-17 Geoffrey Keating <geoffk@apple.com>
|
||||||
|
|
||||||
PR c++/17413
|
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