This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug fortran/61766] New: [4.9 regression] ICE on trans-array.c


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61766

            Bug ID: 61766
           Summary: [4.9 regression] ICE on trans-array.c
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
          Assignee: unassigned at gcc dot gnu.org
          Reporter: juergen.reuter at desy dot de

The following code triggers an ICE with 4.9.0 but seems to work with 4.7.X,
4.8.X, and 4.10:

gfortran  -c prc_gosam.f90
prc_gosam.f90: In function â__final_prc_gosam_Gosam_writer_tâ:
prc_gosam.f90:62:0: internal compiler error: in gfc_conv_descriptor_data_get,
at fortran/trans-array.c:145
 end module prc_gosam
 ^

prc_gosam.f90:62:0: internal compiler error: Abort trap: 6
gfortran: internal compiler error: Abort trap: 6 (program f951)

The code is (with the standard iso_varying_string.f90):

     1    module prclib_interfaces
     2      use iso_varying_string, string_t => varying_string !NODEP!
     3      implicit none
     4      private
     5      public :: prc_writer_f_module_t
     6    
     7      type, abstract :: prc_writer_t
     8       contains
     9         procedure(get_const_string), nopass, deferred :: type_name
    10      end type prc_writer_t
    11    
    12      type, extends (prc_writer_t), abstract :: prc_writer_f_module_t
    13      end type prc_writer_f_module_t
    14      
    15      abstract interface
    16         function get_const_string () result (string)
    17           import
    18           type(string_t) :: string
    19         end function get_const_string
    20      end interface
    21    
    22    end module prclib_interfaces
    23    
    24    !!!!!
    25    
    26    module blha_config
    27      use iso_varying_string, string_t => varying_string !NODEP!
    28      implicit none
    29      private
    30      public :: blha_configuration_t
    31      type :: blha_configuration_t
    32         type(string_t), dimension (2) ::
matrix_element_square_type_other
    33      end type blha_configuration_t
    34    end module blha_config
    35    
    36    !!!!!
    37    
    38    module prc_gosam
    39      use iso_varying_string, string_t => varying_string !NODEP!
    40      use prclib_interfaces
    41      use blha_config
    42      implicit none
    43      private
    44      type, extends (prc_writer_f_module_t) :: gosam_writer_t
    45        type(blha_configuration_t) :: blha_cfg
    46      contains
    47        procedure, nopass :: type_name => gosam_writer_type_name
    48      end type gosam_writer_t
    49    
    50    contains
    51    
    52      function gosam_writer_type_name () result (string)
    53        type(string_t) :: string
    54        string = "gosam"
    55      end function gosam_writer_type_name
    56    
    57      function gosam_writer_get_process_string (writer) result (s_proc)
    58        class(gosam_writer_t), intent(in) :: writer
    59        type(string_t) :: s_proc
    60      end function gosam_writer_get_process_string
    61    
    62    end module prc_gosam

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]