public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug fortran/40413]  New: Internal error in connection with optimization and allocatable objects
@ 2009-06-11 10:01 juergen dot reuter at desy dot de
  2009-06-11 10:34 ` [Bug fortran/40413] " dominiq at lps dot ens dot fr
                   ` (12 more replies)
  0 siblings, 13 replies; 14+ messages in thread
From: juergen dot reuter at desy dot de @ 2009-06-11 10:01 UTC (permalink / raw)
  To: gcc-bugs

The code below does compile with gfortran 4.5.0 without any specification or
with -O0, but generates an internal error when compiling with -O1, -O2, or -O3:
state_matrices.f90: In function 'polarization_copy':
state_matrices.f90:39:0: internal compiler error: in
load_assign_lhs_subreplacements, at tree-sra.c:1954
Please submit a full bug report,
with preprocessed source if appropriate.

The code compiles when using the version in comments, i.e. the usage of the
dummy variable state_dummy. The internal error is avoided also when commenting
out the line 38 with the state_matrix_copy function call. Removing the
multiplicity or the spin_type components also makes the code compile with
optimization. 


module state_matrices

  implicit none
  private

  public :: state_matrix_copy
  public :: state_matrix_t
  public :: matrix_element_t

  type :: matrix_element_t
     private
     integer, dimension(:), allocatable :: f
  end type matrix_element_t

  type :: state_matrix_t
     private
     type(matrix_element_t), dimension(:), allocatable :: me
  end type state_matrix_t

  type :: polarization_t
     logical :: polarized = .false.
     integer :: spin_type = 0
     integer :: multiplicity = 0
     type(state_matrix_t) :: state
  end type polarization_t

contains

  function polarization_copy (pol_in) result (pol)
    type(polarization_t) :: pol
    type(polarization_t), intent(in) :: pol_in
    !!! type(state_matrix_t) :: state_dummy
    pol%polarized = pol_in%polarized
    pol%spin_type = pol_in%spin_type
    pol%multiplicity = pol_in%multiplicity
    !!! state_dummy = state_matrix_copy (pol_in%state)
    !!! pol%state = state_dummy
    pol%state = state_matrix_copy (pol_in%state)
  end function polarization_copy

  function state_matrix_copy (state_in) result (state)
    type(state_matrix_t) :: state
    type(state_matrix_t), intent(in), target :: state_in
  end function state_matrix_copy

end module state_matrices


-- 
           Summary: Internal error in connection with optimization and
                    allocatable objects
           Product: gcc
           Version: 4.5.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: juergen dot reuter at desy dot de
 GCC build triplet: Build version svn v148346
  GCC host triplet: MAC OS X Darwin and Linux x86


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40413


^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2009-06-16 10:24 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-06-11 10:01 [Bug fortran/40413] New: Internal error in connection with optimization and allocatable objects juergen dot reuter at desy dot de
2009-06-11 10:34 ` [Bug fortran/40413] " dominiq at lps dot ens dot fr
2009-06-11 14:55 ` reuter at mail dot desy dot de
2009-06-11 15:23 ` dominiq at lps dot ens dot fr
2009-06-11 19:31 ` reuter at mail dot desy dot de
2009-06-11 21:47 ` dominiq at lps dot ens dot fr
2009-06-12  5:21 ` [Bug fortran/40413] [4.5 Regression] " pault at gcc dot gnu dot org
2009-06-13 14:08 ` [Bug tree-optimization/40413] " rguenth at gcc dot gnu dot org
2009-06-13 15:52 ` pault at gcc dot gnu dot org
2009-06-14  1:30 ` jamborm at gcc dot gnu dot org
2009-06-15  9:07 ` jamborm at gcc dot gnu dot org
2009-06-16  9:54 ` jamborm at gcc dot gnu dot org
2009-06-16 10:12 ` jamborm at gcc dot gnu dot org
2009-06-16 10:24 ` jamborm at gcc dot gnu dot org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).