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



             Bug #: 55501

           Summary: ICE using MERGE in constant expr

    Classification: Unclassified

           Product: gcc

           Version: 4.7.2

            Status: UNCONFIRMED

          Severity: normal

          Priority: P3

         Component: fortran

        AssignedTo: unassig...@gcc.gnu.org

        ReportedBy: lo...@cray.com





Test (extracted from a larger module)



> cat test2.f90

module test



integer,parameter,private :: int32 = 4

integer,private,parameter :: dik = kind(0)     ! Default Integer Kind



type MPI_Datatype

   integer :: mpi_val

end type



type(MPI_Datatype),parameter,private :: MPIx_I4       = MPI_Datatype(4)

type(MPI_Datatype),parameter,private :: MPIx_I8       = MPI_Datatype(8)

type(MPI_Datatype),parameter :: MPI_INTEGER           = merge(MPIx_I4, MPIx_I8,

 dik==int32)



end module test



> ftn -c test2.f90

f951: internal compiler error: in gfc_conv_structure, at

fortran/trans-expr.c:5360

Please submit a full bug report,

with preprocessed source if appropriate.

See <http://gcc.gnu.org/bugs.html> for instructions.



Also fails with 4.8.



Allowing MERGE here is a F2003 feature (elemental intrinsic with constant

arguments). In any case, the compiler should not abort.



Compiles OK with Cray compiler.

Reply via email to