The test case fortran.dg/equiv_7.f90 fails with -m64 -Os on
powerpc-apple-darwin9. I have reduced the code to:
call derived_types ! Thanks to Tobias Burnus for this:)
print *, d1mach (1), transfer ((/0_4, 1048576_4/), 1d0)
if (d1mach (1) .ne. transfer ((/0_4, 1048576_4/), 1d0)) call abort ()
contains
function d1mach(i)
implicit none
double precision d1mach,dmach(5)
integer i,large(4),small(4)
equivalence ( dmach(1), small(1) )
equivalence ( dmach(2), large(1) )
data small(1),small(2) / 0, 1048576/
data large(1),large(2) /-1,2146435071/
d1mach = dmach(i)
end function d1mach
subroutine derived_types
TYPE T2
sequence
character (3) :: chr = "wxy"
END TYPE T2
TYPE(T2) :: a2
if (a2%chr .ne. "wxy") call abort ()
end subroutine derived_types
end
I don't see it on i686-apple-darwin9 and it worked at rev. 132355. The failure
disappears if I comment the CALL. I wonder if it is not another side effect of
rev. 132566:
* config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
strings when optimizing for size, unless the target cares about
alignment.
--
Summary: [4.4 Regression] gfortran.dg/equiv_7.f90 fails with -m64
-Os on powerpc-apple-darwin9
Product: gcc
Version: 4.4.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: target
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: dominiq at lps dot ens dot fr
GCC build triplet: powerpc-apple-darwin9
GCC host triplet: powerpc-apple-darwin9
GCC target triplet: powerpc-apple-darwin9
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35366