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:
Tobias Schlüter 2005-06-18 13:51:47 +02:00 committed by Tobias Schlüter
parent 0563fe8b47
commit 189ed82c09
2 changed files with 89 additions and 0 deletions

View File

@ -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

View 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