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

            Bug ID: 72770
           Summary: ICE in make_ssa_name_fn, at tree-ssanames.c:263
           Product: gcc
           Version: 7.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
          Assignee: unassigned at gcc dot gnu.org
          Reporter: gerhard.steinmetz.fort...@t-online.de
  Target Milestone: ---

ICE with valid examples and experimental (--enable-checking=yes)
version 7 from 20160731 at -Os, -O1 or higher.


$ cat z1.f90
program p
   type t
      class(*), allocatable :: q(:)
   end type
   type(t) :: z
   integer :: a(3) = [1, 2, 3]
   character(2) :: c(3) = ['ab', 'ef', 'ih']
   allocate (z%q(3), source=a)
   call s
contains
   subroutine s
      select type (x => z%q)
      type is (integer)
         if ( any(x/=a) )   call abort
      type is (character(len=*))
         if ( any(x/=c) )   call abort
      end select
   end
end


$ cat z2.f90
program p
   type t
      class(*), allocatable :: q(:)
   end type
   type(t) :: z
   integer :: a(3) = [1, 2, 3]
   character(2) :: c(3) = ['ab', 'ef', 'ih']
   allocate (z%q(3), source=c)
   call s
contains
   subroutine s
      select type (x => z%q)
      type is (integer)
         if ( any(x/=a) )   call abort
      type is (character(len=*))
         if ( any(x/=c) )   call abort
      end select
   end
end



$ gfortran-7-20160731 -O2 z1.f90
z1.f90:9:0:

    call s

internal compiler error: Segmentation fault
0xc1436f crash_signal
        ../../gcc/toplev.c:335
0xe1fe21 make_ssa_name_fn(function*, tree_node*, gimple*)
        ../../gcc/tree-ssanames.c:263
0xc8a3ac make_ssa_name
        ../../gcc/tree-ssanames.h:111
0xc8a3ac remap_ssa_name
        ../../gcc/tree-inline.c:238
0xc90afc copy_tree_body_r(tree_node**, int*, void*)
        ../../gcc/tree-inline.c:1083
0xec5c12 walk_tree_1(tree_node**, tree_node* (*)(tree_node**, int*, void*),
void*, hash_set<tree_node*, default_hash_traits<tree_node*> >*, tree_node*
(*)(tree_node**, int*, tree_node* (*)(tree_node**, int*, void*), void*,
hash_set<tree_node*, default_hash_traits<tree_node*> >*))
        ../../gcc/tree.c:11646
0xec6066 walk_tree_1(tree_node**, tree_node* (*)(tree_node**, int*, void*),
void*, hash_set<tree_node*, default_hash_traits<tree_node*> >*, tree_node*
(*)(tree_node**, int*, tree_node* (*)(tree_node**, int*, void*), void*,
hash_set<tree_node*, default_hash_traits<tree_node*> >*))
        ../../gcc/tree.c:11962
0xc89218 remap_type_1
        ../../gcc/tree-inline.c:562
0xc899a1 remap_type(tree_node*, copy_body_data*)
        ../../gcc/tree-inline.c:591
0xc88974 remap_type_1
        ../../gcc/tree-inline.c:416
0xc899a1 remap_type(tree_node*, copy_body_data*)
        ../../gcc/tree-inline.c:591
0xc913f8 remap_gimple_op_r
        ../../gcc/tree-inline.c:994
0xec5c12 walk_tree_1(tree_node**, tree_node* (*)(tree_node**, int*, void*),
void*, hash_set<tree_node*, default_hash_traits<tree_node*> >*, tree_node*
(*)(tree_node**, int*, tree_node* (*)(tree_node**, int*, void*), void*,
hash_set<tree_node*, default_hash_traits<tree_node*> >*))
        ../../gcc/tree.c:11646
0x99e440 walk_gimple_op(gimple*, tree_node* (*)(tree_node**, int*, void*),
walk_stmt_info*)
        ../../gcc/gimple-walk.c:203
0xc8b2dc remap_gimple_stmt
        ../../gcc/tree-inline.c:1733
0xc8c4ce copy_bb
        ../../gcc/tree-inline.c:1791
0xc8d958 copy_cfg_body
        ../../gcc/tree-inline.c:2736
0xc8d958 copy_body
        ../../gcc/tree-inline.c:2976
0xc93e21 expand_call_inline
        ../../gcc/tree-inline.c:4717
0xc95154 gimple_expand_calls_inline
        ../../gcc/tree-inline.c:4862

Reply via email to