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

Reply via email to