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/70244] [OOP] ICE in spec_dimen_size(): Bad dimension


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

janus at gcc dot gnu.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|[OOP] ICE spec_dimen_size() |[OOP] ICE in
                   |Bad dimension               |spec_dimen_size(): Bad
                   |                            |dimension

--- Comment #2 from janus at gcc dot gnu.org ---
Slightly reduced test case:


module mymodule
    implicit none
    type :: deriv_t
    contains
        procedure :: fun
    end type
    type :: base_a
        class(deriv_t), allocatable :: obj
    end type
contains
    function fun( self ) result( val )
        class(deriv_t), intent(in) :: self
        real, dimension(:,:), allocatable :: val
    end function
end module

program bug
    use mymodule
    implicit none
    type(base_a), dimension(1) :: e
    real, dimension(:,:), allocatable :: m
    allocate( deriv_t :: e(1)%obj )
    m = e(1)%obj%fun()
end


Backtrace with current trunk:

f951: internal compiler error: spec_dimen_size(): Bad dimension
0x7de01e gfc_internal_error(char const*, ...)
        /home/jweil/gcc/gcc7/trunk/gcc/fortran/error.c:1328
0x7a3453 spec_dimen_size(gfc_array_spec*, int, __mpz_struct (*) [1])
        /home/jweil/gcc/gcc7/trunk/gcc/fortran/array.c:2148
0x7a3ea8 gfc_array_dimen_size(gfc_expr*, int, __mpz_struct (*) [1])
        /home/jweil/gcc/gcc7/trunk/gcc/fortran/array.c:2423
0x7e4a5d gfc_check_conformance(gfc_expr*, gfc_expr*, char const*, ...)
        /home/jweil/gcc/gcc7/trunk/gcc/fortran/expr.c:3103
0x7e4fe5 gfc_check_assign(gfc_expr*, gfc_expr*, int, bool)
        /home/jweil/gcc/gcc7/trunk/gcc/fortran/expr.c:3244
0x87dae6 resolve_ordinary_assign
        /home/jweil/gcc/gcc7/trunk/gcc/fortran/resolve.c:10101
0x87f97b gfc_resolve_code(gfc_code*, gfc_namespace*)
        /home/jweil/gcc/gcc7/trunk/gcc/fortran/resolve.c:10919
0x88ca24 resolve_codes
        /home/jweil/gcc/gcc7/trunk/gcc/fortran/resolve.c:16028
0x88cb71 gfc_resolve(gfc_namespace*)
        /home/jweil/gcc/gcc7/trunk/gcc/fortran/resolve.c:16063
0x85d493 resolve_all_program_units
        /home/jweil/gcc/gcc7/trunk/gcc/fortran/parse.c:5977
0x85dcaf gfc_parse_file()
        /home/jweil/gcc/gcc7/trunk/gcc/fortran/parse.c:6224
0x8b6fea gfc_be_parse_file
        /home/jweil/gcc/gcc7/trunk/gcc/fortran/f95-lang.c:202

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